2012-07-31T00:18:58 *** foRei has quit IRC (Read error: Connection reset by peer) 2012-07-31T00:43:04 *** delt0r_ has quit IRC (Ping timeout: 246 seconds) 2012-07-31T00:56:59 *** delt0r_ has joined #aichallenge 2012-07-31T01:01:25 *** mceier has quit IRC (Quit: leaving) 2012-07-31T02:11:41 antimatroid1, amstan: yea well cell phone there [Canada] are really expensive. I spend about 5-10EUR per month for mine... 2012-07-31T02:11:53 i can get 2gig data plan for that as well 2012-07-31T02:28:44 *** antimatroid1 has quit IRC (Quit: Leaving.) 2012-07-31T02:28:59 *** antimatroid has joined #aichallenge 2012-07-31T02:29:40 *** mceier has joined #aichallenge 2012-07-31T02:42:45 *** scribble has joined #aichallenge 2012-07-31T02:45:57 *** scribble has left #aichallenge 2012-07-31T03:00:19 *** coeus has quit IRC (Ping timeout: 264 seconds) 2012-07-31T03:13:56 *** amstan has quit IRC (Quit: Konversation terminated!) 2012-07-31T03:25:57 *** epicmonkey has quit IRC (Read error: Operation timed out) 2012-07-31T04:02:52 *** X-Scale` has joined #aichallenge 2012-07-31T04:02:58 *** X-Scale has quit IRC (Read error: Connection reset by peer) 2012-07-31T04:09:33 *** X-Scale` is now known as X-Scale 2012-07-31T04:27:43 *** antimatroid has quit IRC (Ping timeout: 260 seconds) 2012-07-31T04:33:52 *** epicmonkey has joined #aichallenge 2012-07-31T04:37:05 *** antimatroid has joined #aichallenge 2012-07-31T04:43:22 *** UncleVasya has joined #aichallenge 2012-07-31T04:48:06 *** mcstar has joined #aichallenge 2012-07-31T04:51:12 *** antimatroid has quit IRC (Ping timeout: 240 seconds) 2012-07-31T04:54:48 *** antimatroid has joined #aichallenge 2012-07-31T05:00:50 *** UncleVasya has quit IRC (Ping timeout: 248 seconds) 2012-07-31T05:24:05 mleise: i couldnt resist, i implemented the ternary search tree too :( 2012-07-31T05:24:27 i knew you would :p and what is the result? 2012-07-31T05:24:37 it is working 2012-07-31T05:24:37 it uses more memory right? 2012-07-31T05:24:54 13 secs for 200K load/reread 2012-07-31T05:25:15 13 secs hmm. not too convincing :/ 2012-07-31T05:25:17 *** kilae has joined #aichallenge 2012-07-31T05:25:52 well, used max 5.5% of my memory 2012-07-31T05:26:01 thats really low 2012-07-31T05:26:14 with the strict ocaml prefix trie i couldnt even load the whole dict up 2012-07-31T05:26:19 >4.5 gigs 2012-07-31T05:26:46 this uses <300MB 2012-07-31T05:27:00 and it is faster than the prefix trie 2012-07-31T05:27:09 since that was like 16 seconds 2012-07-31T05:27:29 if i turn on the performance governor, the time is half of this, 13 secs 2012-07-31T05:27:41 ah, i said 13 in the first place ok 2012-07-31T05:27:54 26-27 with powersave governor 2012-07-31T05:28:17 (i dont want to overheat unnecessarily my cpu...) 2012-07-31T05:28:34 *** UncleVasya has joined #aichallenge 2012-07-31T05:28:46 mleise: and this is a naive, fully-lazy implementation 2012-07-31T05:28:52 everything is boxed, and so on 2012-07-31T05:28:57 very ineffective 2012-07-31T05:29:44 http://hpaste.org/72376 2012-07-31T05:29:48 ok, so the algorithm is actually working out positive for you. how about the ondemand governor? 2012-07-31T05:30:09 oh ... it is so short again 2012-07-31T05:30:45 mleise: thats 13 secs, ~3 secs better than the prefix one 2012-07-31T05:30:48 ah fuck 2012-07-31T05:30:49 sry 2012-07-31T05:30:57 ondemand == performance 2012-07-31T05:31:10 since it switches on to full throttle immediately 2012-07-31T05:31:43 but most of the time it clocks your cpu down 2012-07-31T05:32:01 mleise: the first thing i wrote looked similar, but it wasnt a correct implementation 2012-07-31T05:32:08 i had to actually understand the algorithm 2012-07-31T05:32:14 not that trivial as i first thought 2012-07-31T05:32:28 yes, it is easy to make mistakes when you don't understand corner cases 2012-07-31T05:32:33 no 2012-07-31T05:32:39 i didnt uderstand the algorithm 2012-07-31T05:32:43 not a corner case 2012-07-31T05:32:52 i didnt understand why it worked at all 2012-07-31T05:34:53 how did you mark the end of string? 2012-07-31T05:35:34 end 2012-07-31T05:35:46 data TST = Empty | Node Char Bool TST TST TST 2012-07-31T05:35:49 the Bool here 2012-07-31T05:36:01 ah i see 2012-07-31T05:38:56 5 seconds with strict constructor fields 2012-07-31T05:39:03 thats 2.5s in reality 2012-07-31T05:39:25 data TST = Empty | Node !Char !Bool !TST !TST !TST 2012-07-31T05:39:34 all i changed, is i added the !s 2012-07-31T05:40:51 oh, that's more than twice as fast?! 2012-07-31T05:41:03 13 -> 2.5 2012-07-31T05:41:20 oh because of the cpu speed, right 2012-07-31T05:41:48 so 5 times faster??? are you kidding me? all for a few !s? 2012-07-31T05:41:50 real 0m2.459s 2012-07-31T05:42:21 vs. 2012-07-31T05:42:31 real 0m13.355s 2012-07-31T05:42:44 a few !s can make a big difference 2012-07-31T05:42:53 when the system doesnt have to thunk the constructor fields 2012-07-31T05:43:17 imagine, that instead of having unevaluated functions in the fields, you have actual data 2012-07-31T05:44:03 if making a data structure strict doesnt change the semantics, then you should make it stricit 2012-07-31T05:44:41 i like this very much 2012-07-31T05:44:44 this tree* 2012-07-31T05:45:03 mleise: what is you overall timing for a load/check cycle for 200K words? 2012-07-31T05:46:33 %GC time 52.8% 2012-07-31T05:46:34 You are doing something smart or I can join? 2012-07-31T05:46:41 thats pretty bad still 2012-07-31T05:46:56 UncleVasya: you can join either way 2012-07-31T05:47:25 mcstar: 689 ms for the whole program, but I'm loading the dictionary twice now 2012-07-31T05:47:34 OK, to join and be able to do something :D 2012-07-31T05:47:35 once for the dictionary and once as the words to look up 2012-07-31T05:48:32 lookup is around 217 ms 2012-07-31T05:48:40 mleise: was your computer faster than mine? 2012-07-31T05:48:44 i guess it was 2012-07-31T05:48:48 do you have ghc? 2012-07-31T05:48:50 yes, 2,00 Ghz 2012-07-31T05:49:02 no, i meant it was an intel 2012-07-31T05:49:05 core2 or something 2012-07-31T05:49:16 core 2 duo 2012-07-31T05:49:17 iirc you had ghc 2012-07-31T05:49:22 i have ghc, yes 2012-07-31T05:49:29 do you want to try it? 2012-07-31T05:49:34 ill send the full code 2012-07-31T05:49:59 though, i cant seprate the load from the check 2012-07-31T05:50:08 since the computation is still lazy 2012-07-31T05:50:22 ok, send me the code :) 2012-07-31T05:51:52 *** pairofdice has joined #aichallenge 2012-07-31T05:52:16 mleise: i annotated the prev. paste 2012-07-31T05:52:23 2 files you need to make 2012-07-31T05:52:49 ghc -O2 --make -fforce-recomp -rtsopts -fllvm test.hs 2012-07-31T05:53:03 time ./test 200000 words 2012-07-31T05:53:21 'words' is the same file i uploaded a long time ago 2012-07-31T05:54:11 -fllvm ? 2012-07-31T05:54:21 isnt really necessary 2012-07-31T05:54:26 doesnt make it faster 2012-07-31T05:54:45 if the code was more optimized, it could make a difference 2012-07-31T05:55:08 llvm doest really make lazy code faster 2012-07-31T05:55:25 ok, because my GHC doesn't understand that flag 2012-07-31T05:55:32 oh 2012-07-31T05:55:35 than its quite old 2012-07-31T05:55:50 ghc -V 2012-07-31T05:55:57 i have 7.4.2 2012-07-31T05:56:11 i used my words file now. i don't know if i have yours? the result is 2.657 seconds 2012-07-31T05:56:27 well, similar 2012-07-31T05:56:34 The Glorious Glasgow Haskell Compilation System, version 6.12.3 2012-07-31T05:56:37 i think it is quite good for the effort 2012-07-31T05:56:42 6.12 is very old 2012-07-31T05:56:51 oh really? 2012-07-31T05:56:59 debian? 2012-07-31T05:57:22 no Gentoo. the later versions are not marked stable yet 2012-07-31T05:57:51 Version 6.12.3 (released 12 June 2010) 2012-07-31T05:57:51 I'll install 4.7.1 anyway... 2012-07-31T05:58:14 i lot happens to ghc in 2 years 2012-07-31T05:59:41 UncleVasya: implement the ternary tree in ocaml 2012-07-31T05:59:54 you can translate the haskell version 2012-07-31T06:00:11 (well, a suggestsion, if you want to do that...) 2012-07-31T06:00:19 * UncleVasya is going to wiki 2012-07-31T06:00:32 mcstar: do i need LLVM with OCaml enabled? 2012-07-31T06:00:40 hm? 2012-07-31T06:00:51 ghc? 2012-07-31T06:01:08 or i dont understand 2012-07-31T06:01:12 mleise: ^^ 2012-07-31T06:01:30 are you building ghc from source? 2012-07-31T06:01:34 when i install GHC with llvm enabled, LLVM is pulled in 2012-07-31T06:01:39 ok 2012-07-31T06:01:49 if you build it, then you need it 2012-07-31T06:01:52 and there is a flag for OCaml, but I don't need that right? 2012-07-31T06:02:03 oh 2012-07-31T06:02:10 i guess not 2012-07-31T06:02:18 just because you mentioned Ocaml somewhere earlier 2012-07-31T06:02:28 yeah, cause i like that as well 2012-07-31T06:02:35 but these has nothing to do with each other afaik 2012-07-31T06:02:38 have* 2012-07-31T06:02:42 now I need the patience of a Gentoo user once again... om om om 2012-07-31T06:02:56 perl gmp>=5.0 gcc 2012-07-31T06:03:07 these are the dependecies of a packaged ghc 2012-07-31T06:03:21 yeah gmp is pulled in by gcc afaik 2012-07-31T06:04:07 they are also all "system" packages that aren't even mentioned as explicit dependencies 2012-07-31T06:04:24 that sucks sometimes when you want to create a thumb drive installation 2012-07-31T06:04:38 and omit some of the system packages 2012-07-31T06:04:48 hm 2012-07-31T06:05:14 http://hackage.haskell.org/platform/ 2012-07-31T06:05:19 there is this also^^ 2012-07-31T06:06:03 Emilie Autumn - Girls! Girls! Girls! - love lyrics from this song :D http://www.azlyrics.com/lyrics/emilieautumn/girlsgirlsgirls.html 2012-07-31T06:20:24 *** sigh has joined #aichallenge 2012-07-31T06:38:28 *** Scooper has joined #aichallenge 2012-07-31T07:31:34 this is mind-bending 2012-07-31T07:31:36 shit 2012-07-31T07:40:33 *** antimatroid has quit IRC (Ping timeout: 255 seconds) 2012-07-31T07:43:16 *** Kesselya has joined #aichallenge 2012-07-31T07:48:28 Hi all, is anyone online at all? 2012-07-31T07:50:10 *** Reggie_ has joined #aichallenge 2012-07-31T07:50:59 *** antimatroid has joined #aichallenge 2012-07-31T07:51:21 Hello antimatroid 2012-07-31T07:51:59 *** Reggie_ has left #aichallenge 2012-07-31T07:54:39 he is asleep 2012-07-31T07:54:57 Ahh, but you are not :) 2012-07-31T07:55:04 no i'm not 2012-07-31T07:55:22 you should be 2012-07-31T07:55:24 Do you know if logins are disabled for aichallenge.org? My boyfriend participated last fall and tried to log in to check what place he finished 2012-07-31T07:55:32 you will die of sleep deprivation watching the olympics 2012-07-31T07:55:33 it's 9:55pm 2012-07-31T07:55:43 But it rejects his password and the forgot password just takes him to a blank page 2012-07-31T07:55:54 Kesselya: you should be able to just search the username on the right of the page 2012-07-31T07:56:20 i've been getting ready to take tutes tomorrow tonight 2012-07-31T07:56:21 i can log in just fine 2012-07-31T07:56:21 Yeah, we found it, but he is busy trying to solve the problem of the missing login page 2012-07-31T07:58:23 damn does GHC ever complete compilation? 2012-07-31T07:58:54 Do you know if the password reset page works for you mcstar? 2012-07-31T07:59:40 extended shelf life milk is amazing. i left it in the refridgerator for two weeks and it still tastes ok 2012-07-31T08:00:02 Kesselya: nice blank page 2012-07-31T08:00:17 Thanks for checking for me 2012-07-31T08:00:46 theres not much point in logging n 2012-07-31T08:00:48 in 2012-07-31T08:04:12 So, does anyone know if there are going to be more contests at all? 2012-07-31T08:26:55 *** toto has joined #aichallenge 2012-07-31T08:27:19 *** toto is now known as Guest96885 2012-07-31T08:29:12 *** Guest96885 has quit IRC (Client Quit) 2012-07-31T08:32:51 mcstar: with the new GHC it seems to be marginally faster. for the sorted word list i get 1.4 seconds even 2012-07-31T08:33:09 great 2012-07-31T08:33:12 mcstar, I've just read that dark-coloured IDE is better for eyes. Is your IDE dark-coloured? :) 2012-07-31T08:33:30 UncleVasya: my eye is dark colored, does that count? 2012-07-31T08:33:57 my color scheme is quite light 2012-07-31T08:41:08 *** delt0r_ has quit IRC (Read error: Operation timed out) 2012-07-31T08:48:56 *** Kesselya has quit IRC (Quit: Page closed) 2012-07-31T08:56:52 *** delt0r_ has joined #aichallenge 2012-07-31T09:27:55 funny, I just recently switched to a dark scheme 2012-07-31T09:28:01 *theme 2012-07-31T09:40:13 *** Chris_0076 has quit IRC (Quit: Leaving) 2012-07-31T10:13:29 mleise: i fiddled with it some more, 2.45 -> 1.35 2012-07-31T10:14:03 holy shit, you get close to systems programming languages with haskell 2012-07-31T10:14:13 yeah 2012-07-31T10:14:23 i didnt even do any serious optimizations 2012-07-31T10:14:32 just changed from list based strings to bytestring 2012-07-31T10:14:43 which are arrays basically 2012-07-31T10:14:57 so you have a lot of low hanging fruits when it comes to optimization 2012-07-31T10:15:36 you have choices thats for sure 2012-07-31T10:16:08 did you use a sorted list of words? 2012-07-31T10:16:09 very comfortable/slow -> less comfortable but quite fast -> ugly/fast as C 2012-07-31T10:16:26 mleise: i used the file i always have 2012-07-31T10:16:56 yes, but a sorted list is faster than a real world example 2012-07-31T10:17:03 ok 2012-07-31T10:17:31 i dont i will ever use that data structure in real life 2012-07-31T10:17:33 so i dont mind 2012-07-31T10:17:37 dont think* 2012-07-31T10:18:13 ok, then do it for the sake of clean benchmarks :D 2012-07-31T10:18:37 i told you to benchmark with the same file 2012-07-31T10:18:40 as me 2012-07-31T10:18:56 how am i supposed to scramble the file? 2012-07-31T10:19:06 sort -R 2012-07-31T10:19:22 but that wont be the same order as yours 2012-07-31T10:20:12 hmm, but at least close 2012-07-31T10:20:35 1.35 2012-07-31T10:20:44 the same speed, hm 2012-07-31T10:21:16 i didn't expect this. ternary search trees are sensitive to insertion order 2012-07-31T10:21:23 the more random, the more even the tree 2012-07-31T10:21:33 hm 2012-07-31T10:21:45 well, the structure is definitely sensitive 2012-07-31T10:21:53 but im not sure about the speed 2012-07-31T10:22:26 how does your behave wrt sorted input? 2012-07-31T10:22:28 yours* 2012-07-31T10:22:36 let me check 2012-07-31T10:23:39 random: 181 ms insert / 179 ms lookup 2012-07-31T10:23:51 sorted: 82 ms insert / 69 ms lookup 2012-07-31T10:24:26 you said it took ~700ms total 2012-07-31T10:24:31 oh wait, that was the radix tree, but we are talking TST right? 2012-07-31T10:24:36 right 2012-07-31T10:25:10 sorted: 218 ms insert / 139 ms 2012-07-31T10:25:34 random: 311 ms insert / 236 ms lookup 2012-07-31T10:26:36 (+ loading the files, + cleaning up afterwards) 2012-07-31T10:27:09 oh fuck 2012-07-31T10:27:20 i did it with the sorted file 2012-07-31T10:27:28 2.4 vs. 1.25 2012-07-31T10:27:31 2.4 vs. 1.35 2012-07-31T10:27:47 similar slowdown afterall 2012-07-31T10:28:04 *** foRei has joined #aichallenge 2012-07-31T10:28:15 cool, so the better the tree structure (even balance) the worse the performance :D 2012-07-31T10:29:18 the code looks ugly 2012-07-31T10:29:21 i dont like it 2012-07-31T10:30:17 *** mceier has quit IRC (Quit: leaving) 2012-07-31T10:30:39 UncleVasya: how are you coming along? 2012-07-31T10:33:50 I'm on a stage: 'Found out how to bound compilers to Notepad++ in the right way. Ready to make it and start OCaml coding'. 2012-07-31T10:34:19 UncleVasya: have you tried utop? 2012-07-31T10:34:23 nice ocaml toplevel 2012-07-31T10:34:29 and use batteries 2012-07-31T10:34:37 really good standard library replacement 2012-07-31T10:34:46 and try out tuareg or typerex 2012-07-31T10:34:57 great ocaml modes for eamcs 2012-07-31T10:35:01 emacs* 2012-07-31T10:35:15 For I am at notebook now I have to setup my dev environment. Decided to move from Geany to Notepad++. 2012-07-31T10:35:32 whats the difference? 2012-07-31T10:35:36 neither of them is emacs 2012-07-31T10:35:55 tuareg or typerex are Emacs enhancement, I don't have emacs. 2012-07-31T10:36:25 yeah, but you should have it :) 2012-07-31T10:36:40 And I still typing too slow so sometimes it seems I answer not the right question :) 2012-07-31T10:36:53 I'm on Win. 2012-07-31T10:37:55 batteries is a replacement, not an additional thing? 2012-07-31T10:38:28 http://hpaste.org/72392 2012-07-31T10:38:36 And how do you know about batteries? You've tried OCaml? :D 2012-07-31T10:38:57 UncleVasya: check this out, if you need to polar integrate some numerical data on a grid 2012-07-31T10:39:07 UncleVasya: ofc 2012-07-31T10:40:00 *** HaraKiri has joined #aichallenge 2012-07-31T10:41:32 mleise: i think i managed to separate the two phases 2012-07-31T10:41:45 1.13 to load, 0.180 to check 2012-07-31T10:41:49 thats the sorted file 2012-07-31T10:42:09 unsorted: 2.06 vs 0.297 2012-07-31T10:42:16 I find that somewhat impressive for Haskell :) 2012-07-31T10:42:30 not the load, but the lookup 2012-07-31T10:42:37 i should extract the real load time from the first values 2012-07-31T10:42:57 i guess you dont count in file load time, right? 2012-07-31T10:43:56 arghh, I had to write down how I made ocamlopt work on my system several months ago... So today is the day of making OCaml work :) 2012-07-31T10:45:00 UncleVasya: use ocamlfind 2012-07-31T10:45:15 i was strongly suggested by members of the community to use it 2012-07-31T10:46:13 So you now have far more knowledge in OCaml than I do. Smiley turned you to the Dark side? :D 2012-07-31T10:46:24 i like haskell better 2012-07-31T10:46:36 but ocaml is better than some other languages 2012-07-31T10:46:39 so i like it too 2012-07-31T10:47:11 smilye doesnt have much to do with me turning anywhere 2012-07-31T10:47:55 mcstar: yes, file load time is extra 2012-07-31T10:50:07 So would you tell me a story about you and OCaml. A story of times when I wasn't here :) 2012-07-31T10:50:15 *? 2012-07-31T10:50:36 theres not much to tell 2012-07-31T10:50:56 i just made myself familiar a bit, with the ecosystem 2012-07-31T10:50:59 thats all 2012-07-31T10:51:21 what i pasted, was my first useful program, that i actually use 2012-07-31T10:51:50 mleise: load time is a couple of miliseconds 2012-07-31T10:52:07 however i noticed, it takes some time for the ghc RTS to stand up 2012-07-31T10:52:38 like !0.2 seconds 2012-07-31T10:52:41 like ~0.2 seconds 2012-07-31T10:53:47 i try increasing stack and heap allocation 2012-07-31T10:54:50 O.o ...ok 2012-07-31T10:55:37 doesnt help, it doesnt allocate that much 2012-07-31T10:55:48 it helped a lot with the prefix trie 2012-07-31T10:56:09 mleise: ah, and whats your peak memory usage? you forgot to mention that XD 2012-07-31T10:57:12 *** sigh has quit IRC (Read error: Connection reset by peer) 2012-07-31T10:58:12 I built a counter right into the data structure. It is not 'accurate' as in OS memory pages used by process, but reflects exactly how many bytes of memory I requested: 17499492 bytes 2012-07-31T10:58:15 101 MB total memory in use 2012-07-31T10:58:38 aha, thats quite nice 2012-07-31T10:59:03 but then, i dont understand why did you say that it uses more memory than the prefix trie? 2012-07-31T10:59:15 that one really used gigabytes! 2012-07-31T10:59:39 and this one used 17MB for you? thats nothing 2012-07-31T11:00:08 because my prefix trie uses only 17206176 bytes :p 2012-07-31T11:00:43 your prefix trie must store the nodes in the ether 2012-07-31T11:00:58 remember that I trimmed the arrays from char[256] to char[first .. last] 2012-07-31T11:01:12 yeah 2012-07-31T11:01:17 so the terminal nodes usually are a char[1] 2012-07-31T11:01:18 ether 2012-07-31T11:01:26 right ;) 2012-07-31T11:01:55 a small variation of the prefix trie, actually pretty simple but very effective 2012-07-31T11:02:48 in a situtaion 2012-07-31T11:03:00 I think it isn't fair to say that "prefix tries use so much more memory than ternary search trees" when such a simple fix can remedee the situation 2012-07-31T11:03:06 but when you take average and worst case performance, it will be the same 2012-07-31T11:03:23 it is a correct statement 2012-07-31T11:03:57 but in practice, your improvement can be significant 2012-07-31T11:04:14 i cant implement that optimization in my haskell one 2012-07-31T11:04:32 that used a double allocation scheme of linear arrays 2012-07-31T11:04:44 it can be? it makes ternary search trees superfluous for this use cas 2012-07-31T11:04:46 and to resize them is not feasible 2012-07-31T11:05:18 the ternary tree is much simpler 2012-07-31T11:05:23 ok, so computer sience has to go the safe way and define a prefix trie the way it is 2012-07-31T11:05:33 ok, thats an exaggeration, but a bit simpler 2012-07-31T11:05:55 mleise: you can call yours an adaptive prefix trie 2012-07-31T11:06:11 *** UncleVasya has quit IRC (Ping timeout: 248 seconds) 2012-07-31T11:06:36 hehe, I don't think that it deserves a name of its own. A new programming language may apply this optimization by itself. 2012-07-31T11:06:59 hm? 2012-07-31T11:07:04 i dont understand that last part 2012-07-31T11:07:17 anyway, to not store the whole array is not a new idea 2012-07-31T11:07:26 some language may have http://en.wikipedia.org/wiki/Sparse_array 2012-07-31T11:07:29 there are variations, when the nodes are little hashtables 2012-07-31T11:07:36 or little balanced trees 2012-07-31T11:07:54 HAT-trie? 2012-07-31T11:08:23 mleise: i still dont understand what does a language have to do with any of this 2012-07-31T11:08:40 I mean, a language may already offer arrays that do what I did manually 2012-07-31T11:08:43 *** sigh has joined #aichallenge 2012-07-31T11:08:55 language? 2012-07-31T11:09:05 e.g. an array type that limits itself to the set slots 2012-07-31T11:09:33 well, one could always use a hash with char lookup 2012-07-31T11:09:39 yes 2012-07-31T11:09:58 there are libraries of generic indexable collections 2012-07-31T11:10:06 so i think I didn't use a different algorithm in the first place 2012-07-31T11:10:28 it is an implementation detail 2012-07-31T11:11:00 well, it isnt, if it changes the complexity of the algorithm 2012-07-31T11:11:04 imho 2012-07-31T11:11:11 anyway, this is moot 2012-07-31T11:11:13 does it change the complexity? 2012-07-31T11:11:22 it does 2012-07-31T11:11:31 oh, one question 2012-07-31T11:11:39 how do you resize the array? 2012-07-31T11:11:49 you allocate a new, longer one? 2012-07-31T11:11:56 and copy over from the old one? 2012-07-31T11:12:10 I use the standard function 'realloc' 2012-07-31T11:12:44 it asks the OS to extend the memory and if that fails allocates a new memory block and copies over the data 2012-07-31T11:12:56 aha 2012-07-31T11:13:18 i think D stands for Devil 2012-07-31T11:13:32 but it is a C function :D 2012-07-31T11:13:46 actually I write C if I look at my code 2012-07-31T11:13:53 yeah, but you use it from a garbage collected language! 2012-07-31T11:14:00 *** UncleVasya has joined #aichallenge 2012-07-31T11:14:09 bypassing said GC, yes 2012-07-31T11:14:42 except for the radix tree. it is so cumbersome to handle strings in C 2012-07-31T11:20:00 *** epicmonkey has quit IRC (Ping timeout: 246 seconds) 2012-07-31T11:21:42 *** sigh has quit IRC (Remote host closed the connection) 2012-07-31T11:33:38 mcstar: I found newer OCaml version on my flash drive and now see what you meant by 'you should have emacs'. setup for OCaml 3.12 can install emacs. Still have strongly limited internet connection and feed my comp with stuff downloaded months ago :D 2012-07-31T11:33:59 :( 2012-07-31T11:34:05 sorry to hear that 2012-07-31T11:34:13 have fun with emacs 2012-07-31T11:35:59 heheh, it needs 43mb to be downloaded. So no, dont have emacs now :) Will download at the late August. 2012-07-31T11:38:13 * UncleVasya is praying to find MinGW on some of his drives. Without mingw I will find something instead of ocaml. 2012-07-31T11:41:47 UncleVasya: even if you dont have mingw you can use ocaml 2012-07-31T11:41:58 the bytecode compiler works everywhere 2012-07-31T11:42:55 once thing i really reallly reallllly hate in ocaml, is its comment style 2012-07-31T11:43:07 (* how stupid is this *) 2012-07-31T11:43:18 stupid mathematica adopted the same style 2012-07-31T11:43:27 i think this comes from pascal or something 2012-07-31T11:43:32 stupid 2012-07-31T11:50:46 mcstar: i fell asleeps like right after before aha 2012-07-31T11:51:15 then who is this talking to me? 2012-07-31T11:51:35 if you fell asleep just a moment ago? 2012-07-31T11:51:57 wtf does right fater before mean, anyway? 2012-07-31T11:52:28 antimatroid: i confused, and you are tired, verdict: watch more olympics 2012-07-31T11:52:30 m 2012-07-31T11:53:16 i dosed off, didn't intend to go to sleep aha 2012-07-31T11:53:26 i have a bit more work to do then bed 2012-07-31T11:55:14 ah 2012-07-31T11:55:18 coffee? 2012-07-31T11:55:26 i guess its too late for that 2012-07-31T11:58:19 i don't drink coffee 2012-07-31T11:58:21 hate the taste 2012-07-31T12:20:47 just made me a cup of cappuchino 2012-07-31T12:22:15 no h 2012-07-31T12:22:32 cappuccino 2012-07-31T12:22:58 i hope it tastes better after i corrected you 2012-07-31T12:23:02 XD 2012-07-31T12:23:12 i know, im a retard 2012-07-31T12:23:24 anyway, i started to translate the program to ocaml 2012-07-31T12:29:33 *** kilae_ has joined #aichallenge 2012-07-31T12:29:52 *** kilae has quit IRC (Ping timeout: 240 seconds) 2012-07-31T12:33:36 lol, why? 2012-07-31T12:33:59 I started to shoot myself in the foot with C by the way! yay! 2012-07-31T12:34:50 have you taken a look at the words in the file? what the heck does omnisufficient mean? 2012-07-31T12:35:03 or ossiculum 2012-07-31T12:35:42 dunno 2012-07-31T12:35:54 im not an english major 2012-07-31T12:43:09 ./tst ../has/bookworm/words 100000 2012-07-31T12:43:11 file read in 211 2012-07-31T12:43:13 created tree in 993 2012-07-31T12:43:15 checking in 149 2012-07-31T12:43:17 found all? true 2012-07-31T12:43:19 mleise: ^^ 2012-07-31T12:43:30 i get segfault for 200K 2012-07-31T12:43:48 that means a nasty stack overflow for the non tail recursive algorithms 2012-07-31T12:47:41 wooo ready 2012-07-31T12:47:42 alright. every language has its own pitfalls :) 2012-07-31T12:47:55 even haskell and english 2012-07-31T12:48:07 lies, c++ is perfect :| 2012-07-31T12:48:21 file read in 214 2012-07-31T12:48:23 created tree in 916 2012-07-31T12:48:25 checking in 131 2012-07-31T12:48:27 found all? true 2012-07-31T12:48:29 170K, max performance 2012-07-31T12:48:38 (the numbers are in ms) 2012-07-31T12:49:03 mleise: for some reason i cant extend the stack with my usual method 2012-07-31T12:49:07 ill ask on #ocaml 2012-07-31T12:49:17 oh that was the ocalm version 2012-07-31T12:49:22 yes 2012-07-31T12:49:39 i see why it is so rarely used ;) 2012-07-31T12:50:32 http://hpaste.org/72396 2012-07-31T12:50:40 UncleVasya: ^^ 2012-07-31T12:50:46 mleise: what is rarely used? 2012-07-31T12:51:08 OCaml 2012-07-31T12:51:23 nothing but trouble with the stack 2012-07-31T12:51:45 because of heavy use of non tail recursive algorithms in a strict language? 2012-07-31T12:51:53 how is that any different from D? 2012-07-31T12:52:01 and I remember the everlasting bug in MLDonkey, where it the CPU usage would increase over time 2012-07-31T12:52:24 * mleise looks up what tail recursive means on Wikipedia 2012-07-31T12:53:51 so tail recursive means, I can reuse the stack of the first call into the recursive function, because the actual recursion is the very last instruction in it 2012-07-31T12:54:58 yeah, recursion in constant space 2012-07-31T12:55:09 well, when it is optimized 2012-07-31T12:56:49 it has technical similarities with continuation passing 2012-07-31T13:04:05 weird 2012-07-31T13:04:19 the so happens in a tail rec. fuction 2012-07-31T13:05:03 maybe List.rev isnt tail rec. 2012-07-31T13:06:22 *** Accoun has quit IRC (Ping timeout: 250 seconds) 2012-07-31T13:08:21 *** Accoun has joined #aichallenge 2012-07-31T13:19:35 *** epicmonkey has joined #aichallenge 2012-07-31T13:53:43 mleise: 2012-07-31T13:53:45 time ./tst ../has/bookworm/words 200000 2012-07-31T13:53:48 file read in 316 2012-07-31T13:53:50 created tree in 1274 2012-07-31T13:53:52 checking in 160 2012-07-31T13:53:54 found all? true 2012-07-31T13:53:56 real 0m1.772s 2012-07-31T13:53:58 mleise: problem solved, no stack overflow 2012-07-31T13:54:24 the problem was, that i used exception handling in a way, so that tail recursion didnt happen 2012-07-31T13:54:25 good good 2012-07-31T13:54:59 no more benchmarking for a week! 2012-07-31T13:56:13 * mcstar wonders if UncleVasya will show his code, maybe his will be even faster 2012-07-31T13:56:34 well, he wrote his game tree evalution in ocaml, and that must be fast 2012-07-31T13:57:48 * UncleVasya is trying to make ocamlopt work :D 2012-07-31T14:00:39 in fact, I managed it to compile my Ants bot. And compiled version even works. But during compilation there were odd warnings from linker and bot file size differs from the one I compiled at home pc (now it 70kb less). 2012-07-31T14:05:06 UncleVasya: you can compile with ocamlc too 2012-07-31T14:05:09 it is even faster 2012-07-31T14:05:14 (to compile..) 2012-07-31T14:06:11 yep, I used it in the very beginning. So now for me it's a step back :p 2012-07-31T14:06:40 step back? 2012-07-31T14:06:46 it is for testing your code 2012-07-31T14:07:10 you dont need native compilation every time 2012-07-31T14:07:14 just like with haskell 2012-07-31T14:07:21 you can load your code up into ghci 2012-07-31T14:07:25 test it, whatever 2012-07-31T14:07:33 and compile when ready 2012-07-31T14:17:48 okay, I'm accepting the presence of these warnings for now. At least executables seem to work :) 2012-07-31T14:18:14 UncleVasya: can you paste a warning? 2012-07-31T14:18:15 btw, mcstar, is my English better than before? :D 2012-07-31T14:18:37 UncleVasya: i spotted some errors 2012-07-31T14:18:44 but overall, i would say yes 2012-07-31T14:21:31 I think the issue is that I don't have a cygwin which is the requirement. Strange, but on home PC I have no cygwin too, but haven't seen these warnings. I can past them but I think it is too small thing to waste your time on it. 2012-07-31T14:22:17 > but overall, i would say yes and it is strange, because I did nothing to improve it :D 2012-07-31T14:22:42 maybe, you just pay more attention to it 2012-07-31T14:22:59 okay, so now I finish setuping work environment and tomorrow I'll try to start coding your tree. 2012-07-31T14:23:25 UncleVasya: well, i have my tree 2012-07-31T14:23:33 it is going to be yours 2012-07-31T14:23:50 so, do it if you like, but im not pushing you :) 2012-07-31T14:24:04 UncleVasya: have you seen my code? 2012-07-31T14:24:07 *** HaraKiri has quit IRC () 2012-07-31T14:24:38 The first one, about interpolation. 2012-07-31T14:24:52 no, the ternary search tree 2012-07-31T14:25:05 i pasted the link for you 2012-07-31T14:27:04 No, I must to write from scratch. Because if I see your code I'll understand that writing own totally pointless, for my crap will be really crap comparing to your program :) 2012-07-31T14:27:30 hm 2012-07-31T14:27:34 ok 2012-07-31T14:48:03 *** UncleVasya has quit IRC (Read error: Connection reset by peer) 2012-07-31T14:54:48 *** mceier has joined #aichallenge 2012-07-31T15:02:48 *** alehorst has joined #aichallenge 2012-07-31T15:04:39 *** alehorst1 has quit IRC (Ping timeout: 250 seconds) 2012-07-31T15:15:25 *** UncleVasya has joined #aichallenge 2012-07-31T15:31:37 *** UncleVasya has quit IRC (Ping timeout: 246 seconds) 2012-07-31T15:36:53 *** alehorst has quit IRC (Read error: Connection reset by peer) 2012-07-31T15:37:15 *** alehorst has joined #aichallenge 2012-07-31T15:44:43 *** Accoun has quit IRC () 2012-07-31T15:52:31 *** iglo has joined #aichallenge 2012-07-31T16:24:42 *** Accoun has joined #aichallenge 2012-07-31T16:43:55 *** delt0r_ has quit IRC (Ping timeout: 252 seconds) 2012-07-31T16:50:19 *** mcstar has quit IRC (Quit: mcstar) 2012-07-31T16:53:20 *** coeus has joined #aichallenge 2012-07-31T16:56:28 *** delt0r_ has joined #aichallenge 2012-07-31T18:01:07 *** kilae_ has quit IRC (Quit: ChatZilla 0.9.88.2 [Firefox 14.0.1/20120713134347]) 2012-07-31T18:24:30 *** amstan has joined #aichallenge 2012-07-31T18:24:30 *** ChanServ sets mode: +o amstan 2012-07-31T18:29:04 *** pairofdice has quit IRC (Quit: In girum imus nocte et consumimur igni.) 2012-07-31T18:37:30 *** iglo has quit IRC (Remote host closed the connection) 2012-07-31T18:50:29 *** coeus has quit IRC (Ping timeout: 260 seconds) 2012-07-31T19:27:56 *** Scooper has quit IRC (Quit: Leaving) 2012-07-31T19:49:59 *** epicmonkey has quit IRC (Ping timeout: 260 seconds) 2012-07-31T20:59:51 *** Erdos777 has joined #aichallenge 2012-07-31T21:00:18 Can anyone tell me if security at the Google Campus would spot a fake Google Badge? 2012-07-31T21:02:42 *** Erdos777 has left #aichallenge 2012-07-31T21:03:30 ... 2012-07-31T21:10:52 *** antimatroid has quit IRC (Ping timeout: 255 seconds) 2012-07-31T23:11:28 *** delt0r_ has quit IRC (Remote host closed the connection) 2012-07-31T23:44:57 *** mceier has quit IRC (Quit: leaving)