2013-08-12T00:13:59 *** contestbot has joined #aichallenge 2013-08-12T00:13:59 *** ChanServ sets mode: +o contestbot 2013-08-12T03:20:48 *** thestinger has quit IRC (Quit: WeeChat 0.4.1) 2013-08-12T03:39:35 *** amstan_ has quit IRC (Quit: Konversation terminated!) 2013-08-12T03:47:19 *** epicmonkey has joined #aichallenge 2013-08-12T04:00:06 *** epicmonkey has quit IRC (Ping timeout: 264 seconds) 2013-08-12T04:35:49 *** antimatroid1 has quit IRC (Ping timeout: 248 seconds) 2013-08-12T04:41:58 *** antimatroid has joined #aichallenge 2013-08-12T05:19:27 *** foRei has joined #aichallenge 2013-08-12T05:23:33 *** epicmonkey has joined #aichallenge 2013-08-12T06:23:20 *** smiley1983 has joined #aichallenge 2013-08-12T06:35:22 *** antimatroid has quit IRC (Quit: Leaving.) 2013-08-12T06:35:58 *** antimatroid has joined #aichallenge 2013-08-12T07:10:15 *** sigh has joined #aichallenge 2013-08-12T07:15:24 *** epicmonkey has quit IRC (Remote host closed the connection) 2013-08-12T07:17:12 *** epicmonkey has joined #aichallenge 2013-08-12T07:28:38 *** antimatroid has quit IRC (Quit: Leaving.) 2013-08-12T07:28:48 *** antimatroid has joined #aichallenge 2013-08-12T07:39:39 *** heinrich5991 has quit IRC (Ping timeout: 260 seconds) 2013-08-12T08:43:48 *** antimatroid has quit IRC (Quit: Leaving.) 2013-08-12T08:43:57 *** antimatroid has joined #aichallenge 2013-08-12T10:10:18 *** swabbles_ has joined #aichallenge 2013-08-12T10:10:46 *** swabbles has quit IRC (Ping timeout: 240 seconds) 2013-08-12T10:28:16 *** mcstar has joined #aichallenge 2013-08-12T11:12:15 *** sigh has quit IRC (Remote host closed the connection) 2013-08-12T11:38:52 *** smiley1983 has quit IRC (Quit: Lost terminal) 2013-08-12T11:42:22 *** iglo has joined #aichallenge 2013-08-12T11:56:11 *** heinrich5991 has joined #aichallenge 2013-08-12T12:11:30 *** iglo has quit IRC (Quit: .) 2013-08-12T12:49:09 *** kilae has joined #aichallenge 2013-08-12T13:46:13 *** janzert has left #aichallenge 2013-08-12T13:46:44 *** thestinger has joined #aichallenge 2013-08-12T14:01:03 *** mcstar has joined #aichallenge 2013-08-12T14:15:49 *** Scooper has joined #aichallenge 2013-08-12T14:26:16 *** kurnevsky has joined #aichallenge 2013-08-12T14:35:54 *** dici has joined #aichallenge 2013-08-12T14:43:41 Hello, guys. Is there a chance for a new challenge? :) 2013-08-12T14:50:49 mcstar: \o 2013-08-12T14:53:12 a chance, yes. very very slim. 2013-08-12T14:58:10 And what happened with it? Enthusiasts are gone? :) 2013-08-12T14:58:33 thestinger: and everyone else: o/ 2013-08-12T14:58:52 mcstar: I might have a job soon ;P, I've had 2 interviews with mozilla 2013-08-12T14:59:19 mcstar: also, finished BSG - did not really like it that much :| 2013-08-12T14:59:31 whoaa.... mozilla Himself? 2013-08-12T14:59:43 wat 2013-08-12T14:59:44 i didnt know there was an actual person called mozilla 2013-08-12T14:59:51 j/k 2013-08-12T15:00:11 thestinger: thats ok, it gets boring after a couple seasons 2013-08-12T15:01:19 thestinger: will you be working on rust, or some other project? or is it too early to ask 2013-08-12T15:01:24 on rust 2013-08-12T15:01:40 mcstar: https://careers.mozilla.org/en-US/position/oKiEXfwn that's the job opening 2013-08-12T15:01:49 I think I have a good chance of getting it 2013-08-12T15:02:49 they need a computer science bullshit or equivalent 2013-08-12T15:03:03 or equivalent experience, yeah 2013-08-12T15:03:08 i guess, thats not a problem since you already talked to them 2013-08-12T15:03:27 the lead dev of rust is the one who encouraged me to apply ;p 2013-08-12T15:03:33 CS BS might not give much experience.. 2013-08-12T15:04:00 im sort of looking at the rust gpu code generation 2013-08-12T15:04:09 read the paper of hulk 2013-08-12T15:04:15 eric holk 2013-08-12T15:04:21 i know, i read it 2013-08-12T15:04:33 there's work on SIMD stuff now 2013-08-12T15:05:52 thestinger: did you hear about the story of lavabit? 2013-08-12T15:06:03 yes 2013-08-12T15:06:27 someone told me about their sevices not a long ago 2013-08-12T15:06:31 and they are already down :( 2013-08-12T15:06:56 anyway, it is a good cautionary tale 2013-08-12T15:07:37 kurnevsky: look at the topic, thats what happened 2013-08-12T15:08:23 someone not long ago advertised some ai contest here 2013-08-12T15:08:36 maybe you could look at that 2013-08-12T15:12:59 i cant find it 2013-08-12T15:16:06 *** coeus has quit IRC (Ping timeout: 264 seconds) 2013-08-12T15:16:50 yay, 'history' is a useful feature after all 2013-08-12T15:17:01 kurnevsky: http://multiagentcontest.org/ if you are interested 2013-08-12T15:18:05 mcstar: ok, thanks :) 2013-08-12T15:21:13 thestinger: will you be moving to site, if you get the job? 2013-08-12T15:21:25 mcstar: well they have an office in toronto 2013-08-12T15:21:33 thats great 2013-08-12T15:21:52 their team is already spread out 2013-08-12T15:22:09 but yeah, it'd be awesome to work there 2013-08-12T15:23:23 *** coeus has joined #aichallenge 2013-08-12T15:23:46 (i think elway will bring dexter down in the end) 2013-08-12T15:37:20 thestinger: have you read this? http://www.icu-project.org/docs/papers/cpp_report/the_anatomy_of_the_assignment_operator.html 2013-08-12T15:37:24 dont scroll down 2013-08-12T15:37:36 actually, dont look at the code either, see if you can come up with it 2013-08-12T15:38:10 I don't use inheritance ;P 2013-08-12T15:38:27 well, ppl do when they write c++ 2013-08-12T15:39:20 'If you've ever created a new class, you've needed to write an assignment operator. ' - only true if you use raw pointers 2013-08-12T15:39:28 i forgot about the possible 'chaining' of assigment operators, so i got the type sig wrong of operator= 2013-08-12T15:39:42 this is about raw pointers 2013-08-12T15:39:59 TBar could be a typedef.. true 2013-08-12T15:40:33 well I mean using raw pointers is likely a mistake 2013-08-12T15:40:38 unless you are writing a container 2013-08-12T15:40:45 or a sum type template 2013-08-12T15:41:00 thestinger: most of the time ppl use raw pointers to 'share' data in c/c++ 2013-08-12T15:41:06 well then they 2013-08-12T15:41:11 they're non-owning* 2013-08-12T15:41:17 and shallow copying is correct 2013-08-12T15:42:05 this sample code is "wrong" 2013-08-12T15:42:05 i know rust helps here, but try to keep it 'c++' 2013-08-12T15:42:08 it should be unique_ptr 2013-08-12T15:42:30 and they wouldn't need to implement the copy/move constructors or operator= 2013-08-12T15:42:41 wouldn't be any slower 2013-08-12T15:42:51 you mean unique_ptr instead of auto_ptr? 2013-08-12T15:43:12 instead of those raw ptrs 2013-08-12T15:43:28 'consider both pointers to have owning semantics' 2013-08-12T15:43:39 if they own the value, they are a unique pointer - so use a unique_ptr 2013-08-12T15:43:40 well, the guy gives a solution with auto_ptr 2013-08-12T15:44:00 (but that was not portable at the that time) 2013-08-12T15:44:02 yeah but if he didn't use auto_ptr he wouldn't have to implement operator= 2013-08-12T15:44:09 well 2013-08-12T15:44:11 this is ancient I guess 2013-08-12T15:44:16 97 i think 2013-08-12T15:44:31 anyway in rust you don't implement this stuff 2013-08-12T15:44:33 ;p 2013-08-12T15:45:04 that article is still educational 2013-08-12T15:45:25 and can be a good motivation to use uniqe_ptr 2013-08-12T15:45:30 yeah 2013-08-12T15:45:41 but only if you use inheritance 2013-08-12T15:45:54 if you don't, almost everything should be by-value and there are few use cases for unique_ptr 2013-08-12T15:46:05 unless you are writing a linked data structure 2013-08-12T15:46:17 i dont see how inheritance has to do with this 2013-08-12T15:46:23 mcstar: that's why they have ptrs 2013-08-12T15:46:38 because pointer indirection is required for dynamic polymorphism 2013-08-12T15:46:42 since you don't know the size of the type 2013-08-12T15:47:09 C++ doesn't *prevent* you from making the mistake of storing it by-value though like a sane language would 2013-08-12T15:47:16 http://en.wikipedia.org/wiki/Object_slicing 2013-08-12T15:47:29 you can recast any way you want the address of a stack allocated object 2013-08-12T15:47:46 at least thats what i think 2013-08-12T15:48:38 thestinger: i thought the pointers are needed to easily change ownership of objects without copying them 2013-08-12T15:48:58 at least im thinking in this context, not that they were needed because of polymorphism 2013-08-12T15:49:06 the text says, TBar is monomorphic 2013-08-12T15:49:17 in the sense it has no superclasses 2013-08-12T15:49:35 they say it's an owning ptr though so I don't get why it's not by-value 2013-08-12T15:49:41 if it's not for runtime polymorphism 2013-08-12T15:50:01 there are only 2 of them so it's not like size is going to be a huge concern, unless it's recursive in which case you have to 2013-08-12T15:50:28 pointer indirection is a premature attempt at optimization, even though by-value is simpler and likely faster 2013-08-12T15:53:17 try returning objects by value 2013-08-12T15:53:46 i dont understand your statement, and especially not given the time the article was written 2013-08-12T15:58:42 mcstar: returning objects by-value is fine... it's a move in the worst case 2013-08-12T15:58:45 but compilers do RVO 2013-08-12T15:58:54 they make an output pointer, and write the return value to it 2013-08-12T15:59:18 compilers still did RVO before C++11 2013-08-12T16:04:25 thestinger: lets say i have a function, that calls another one, which returns an object, which the first function stores, like Fa(){a = Fb();}, i think in this case the object which is created in Fb will be allocated on Fb's stack, and when returned will be copied to a temporary location, destroyed in Fb's scope, and given to the assignment operator of the object, which might just result in a simply 2013-08-12T16:04:27 call to the default copy constructor if nothin was specialied, and so copied from the temporary location to the stack of Fa 2013-08-12T16:04:41 what did RVO do in this case in '97? 2013-08-12T16:05:11 97 is pre-standard C++ so there were no defined semantics 2013-08-12T16:05:14 ;p 2013-08-12T16:05:21 C++98 explicitly defines RVO 2013-08-12T16:05:29 lets go with that 2013-08-12T16:05:32 a compiler can allocate the object in the caller, and return it via an output parameter 2013-08-12T16:05:42 it can do it all the way up the call stack 2013-08-12T16:05:45 not just 1 level 2013-08-12T16:05:47 and they did 2013-08-12T16:05:54 it's even allowed to change the program's visible behaviour 2013-08-12T16:05:59 but that requires operator= be the auto generated one 2013-08-12T16:06:05 if the copy-constructor has a side effect, it can still eliminate it 2013-08-12T16:06:07 mcstar: nope 2013-08-12T16:06:21 the standard explicitly says they can eliminate the copy-constructor whether it has a side effect or not for RVO 2013-08-12T16:06:34 you can try it yourself 2013-08-12T16:06:42 ok, so thats a restriction what i can put inside a copy constructor 2013-08-12T16:06:53 if you return by-value, it won't actually call the copy-constructor in C++98, or the move-constructor in C++11 2013-08-12T16:07:09 but probably thats ok, since i need to keep its semantics 2013-08-12T16:07:21 you have to pass -fno-elide-constructors to disable it 2013-08-12T16:07:35 it's not even part of -O, it *always* elides them 2013-08-12T16:08:03 clang makes the decision in the frontend - it's not really considered an optimization (clang doesn't do optimizations, LLVM does) 2013-08-12T16:08:14 it's just something every sane C++ compiler has to do 2013-08-12T16:09:08 so you are basically saying that returning whatever objects was an efficient thing for quite some time 2013-08-12T16:09:36 yep 2013-08-12T16:09:52 why do we need move constructors at all if the above is true? 2013-08-12T16:10:03 mcstar: because returning is only one case 2013-08-12T16:10:16 you need move constructors to pass temporaries efficiently by-value 2013-08-12T16:10:19 or to steal by-value 2013-08-12T16:10:22 anyway C++ has it all wrong 2013-08-12T16:10:37 moving should be the *default*, and compilers should prevent use-after-move 2013-08-12T16:10:44 copying should be explicit 2013-08-12T16:10:46 okok, spare me the evangelism 2013-08-12T16:10:48 :) 2013-08-12T16:10:49 ;p 2013-08-12T16:12:12 thestinger: where did you read about this btw? 2013-08-12T16:12:17 * thestinger shrugs 2013-08-12T16:12:33 mcstar: the C++ standard? ;p 2013-08-12T16:12:38 stackoverflow 2013-08-12T16:12:43 random blogs 2013-08-12T16:12:57 so you didnt read a book on c++ for example? 2013-08-12T16:13:04 like a real book 2013-08-12T16:14:51 nope 2013-08-12T16:15:08 books are meant to be fiction ;P 2013-08-12T16:36:15 *** kilae has quit IRC (Quit: ChatZilla 0.9.90.1 [Firefox 23.0/20130730113002]) 2013-08-12T16:44:30 *** thestinger has quit IRC (Ping timeout: 264 seconds) 2013-08-12T16:45:10 *** thestinger has joined #aichallenge 2013-08-12T16:52:52 *** amstan has joined #aichallenge 2013-08-12T16:52:52 *** ChanServ sets mode: +o amstan 2013-08-12T16:59:16 *** antimatroid has quit IRC (Ping timeout: 246 seconds) 2013-08-12T17:03:00 *** amstan has quit IRC (Ping timeout: 276 seconds) 2013-08-12T17:03:40 *** antimatroid has joined #aichallenge 2013-08-12T17:20:39 *** mceier has quit IRC (Remote host closed the connection) 2013-08-12T17:21:16 *** mcstar has quit IRC (Quit: mcstar) 2013-08-12T17:21:36 *** mceier has joined #aichallenge 2013-08-12T17:39:57 *** amstan has joined #aichallenge 2013-08-12T17:39:57 *** ChanServ sets mode: +o amstan 2013-08-12T18:24:49 *** foRei has quit IRC (Read error: Connection reset by peer) 2013-08-12T18:25:19 *** foRei has joined #aichallenge 2013-08-12T18:49:06 *** Scooper has quit IRC (Quit: Leaving) 2013-08-12T18:58:05 *** sigh has joined #aichallenge 2013-08-12T19:07:19 *** dici has quit IRC (Read error: Connection reset by peer) 2013-08-12T19:09:00 *** chris___0076 has joined #aichallenge 2013-08-12T19:12:42 *** chris__0076 has quit IRC (Ping timeout: 264 seconds) 2013-08-12T19:41:35 *** sigh has quit IRC (Remote host closed the connection) 2013-08-12T20:07:00 *** foRei has quit IRC (Quit: Bye) 2013-08-12T21:52:39 *** zhenbeiju has joined #aichallenge 2013-08-12T22:12:23 Hello any one here ? 2013-08-12T22:13:43 I want creat an account , but it's closed 2013-08-12T22:13:50 how can i play this game 2013-08-12T22:18:01 any one here ?