00:11 <+eeeee> guess these days lunix assumes anything that's not a browser is probably some helper process for the browser 00:38 < ddnet-commits> [ddnet] heinrich5991 opened pull request #1044: Remove the blanket rules for files without extension (master...pr_ddnet_gitignore_specific) https://git.io/vA0P4 00:38 < ddnet-commits> [ddnet] heinrich5991 opened pull request #1045: Some CMake improvements (master...pr_ddnet_cmake_improvements) https://git.io/vA0P0 07:38 < ddnet-commits> [ddnet] def- pushed 3 new commits to master: https://git.io/vAEeF 07:38 < ddnet-commits> ddnet/master ac7e92d heinrich5991: Rerun wavpack version detection when the library changes 07:38 < ddnet-commits> ddnet/master 1578e27 heinrich5991: Ignore old generated files if still present... 07:38 < ddnet-commits> ddnet/master 6c41e95 Dennis Felsing: Merge pull request #1045 from heinrich5991/pr_ddnet_cmake_improvements... 18:02 <+bridge> [freenode] if factorio was idle, it was probably a better candidate than an active process 18:02 <+bridge> [freenode] 4530344kB is a hell of a lot tho 18:03 <+bridge> [freenode] ditto 1431628 in actual memory. 1.4 gigs 18:03 <+bridge> [freenode] sounds like a good candidate 18:07 <+bridge> [freenode] if you really want to let factorio run wild, you might want to adjust its oom score to protect it 18:08 <+bridge> [freenode] looks like a score of -17 is total immunisation 18:08 <+bridge> [freenode] I guess downside of that would be you could kill your system 18:08 <+bridge> [freenode] https://backdrift.org/oom-killer-how-to-create-oom-exclusions-in-linux 18:17 <+bridge> [ddnet] yo im having trouble with special chars on ubuntu and with my searchengine xd 18:18 <+bridge> [ddnet] how to write things like [ { ] } @ etc in ubuntu or search them in searchengines because they get ignored there .-. 18:38 <+bridge> [freenode] quote them? 18:39 <+bridge> [ddnet] i tried 18:40 * bridge [freenode] shrugs 18:40 <+bridge> [freenode] is this some integration of search into gnome3 or unity or something? 18:42 <+bridge> [ddnet] ? 18:43 <+bridge> [ddnet] are you talking about sth like google 18:43 <+bridge> [ddnet] duckduckgo 18:43 <+bridge> [ddnet] ye 18:43 <+bridge> [freenode] is this in browser or in your desktop environment 18:44 <+bridge> [ddnet] yep 18:44 <+bridge> [ddnet] nobody using ubumtu here? 18:44 <+bridge> [freenode] lol @ "yep" 18:44 <+bridge> [freenode] to a question w/ 2 choices 18:45 <+bridge> [freenode] I'm currently using ubuntu on a few computers. Mate + 14.04 LTS 18:45 <+bridge> [ddnet] how do type all these special chars? 18:45 <+bridge> [ddnet] o.O 18:45 <+bridge> [freenode] everything else is devuan or gentoo, apart from one experiment w/ mint 18:45 <+bridge> [freenode] so. again ChillerDragon - I gotta ask. is this in your browser, or your desktop environment 18:45 <+bridge> [ddnet] yes 18:45 <+bridge> [ddnet] as i said already 18:45 <+bridge> [freenode] … 18:45 <+bridge> [ddnet] ah 18:45 <+bridge> [ddnet] xd 18:46 <+bridge> [ddnet] xxxD 18:46 <+bridge> [ddnet] i have two probs 18:46 <+bridge> [ddnet] the one not being able to type it 18:46 <+bridge> [freenode] entering @ sign in browser works fine w/ DDG and Google 18:46 <+bridge> [ddnet] and the other one not being able to search for a solution because entering "type { ubuntu" in duckduckgo gives random results 18:47 <+bridge> [freenode] well. DDG's search may be crap is all 18:47 <+bridge> [freenode] but I gotta say. that search string is not great 18:47 <+bridge> [ddnet] well nvm just tell me how to write them on my keyboard .-. 18:47 <+bridge> [freenode] I wouldn't have any idea what you were looking for either 18:47 <+bridge> [ddnet] i want to type [ { @ 18:48 <+bridge> [freenode] well on a standard QWERTY american english kbd, that would be + [ 18:48 <+bridge> [freenode] no idea what your kbd is 18:48 <+bridge> [ddnet] german 18:48 <+bridge> [freenode] welp. lemme ask Wuzzy in #hedgewars 18:48 <+bridge> [freenode] he's german 18:48 <+bridge> [ddnet] c: 18:48 <+bridge> [ddnet] alt-gr 8 18:48 <+bridge> [ddnet] on the german keyboard 18:48 <+bridge> [freenode] ah 18:48 <+bridge> [freenode] yay. more germans 18:48 <+bridge> [ddnet] shift ö on the english layout with a german keyboard IIRC 18:48 <+bridge> [ddnet] great 18:49 <+bridge> [ddnet] ty @heinrich5991 working 18:49 <+bridge> [freenode] FWIW he said alt-gr 7 18:49 <+bridge> [freenode] I guess that's { and } 18:49 <+bridge> [ddnet] ye all these numbers 18:49 <+bridge> [ddnet] yy 18:49 <+bridge> [ddnet] altgr is key 18:49 <+bridge> [ddnet] @ChillerDragon don't you have those printed on your keyboard? ^^ 18:49 <+bridge> [ddnet] i have .-. 18:49 <+bridge> [ddnet] but i tried all keys except altgr 18:49 <+bridge> [ddnet] i didnt know i have this key 18:49 <+bridge> [ddnet] xd 18:50 <+bridge> [ddnet] nemo: for reference: https://upload.wikimedia.org/wikipedia/commons/3/36/KB_Germany.svg 18:50 <+bridge> [freenode] I never remap kbd off qwerty - always leads to tears when on a random computer - but I guess if one is in germany QWERTZ is the standard 18:50 <+bridge> [freenode] for french I use XCompose 18:50 <+bridge> [ddnet] yes, qwertz is standard for computers here 18:51 <+bridge> [freenode] € → compose + e= 18:51 <+bridge> [ddnet] ąçȩįų 18:51 <+bridge> [freenode] huh. no ẞß ? is it too rare? 18:51 <+bridge> [ddnet] nemo: top right 18:51 <+bridge> [freenode] oh 18:51 <+bridge> [freenode] there it is 18:51 <+bridge> [freenode] yeh 18:52 <+bridge> [ddnet] 18:52 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/415928675641327628/Screenshot_from_2018-02-21_18-51-34.png 18:52 <+bridge> [ddnet] whats going on? 18:52 <+bridge> [ddnet] read is a special command from bash 18:52 <+bridge> [ddnet] `system` can only call executables 18:52 <+bridge> [ddnet] isnt system === bash? 18:52 <+bridge> [ddnet] oh LOOL 18:52 <+bridge> [ddnet] ty 18:52 <+bridge> [ddnet] so i have to call bash 18:52 <+bridge> [ddnet] xd 18:52 <+bridge> [freenode] heh 18:52 <+bridge> [ddnet] maybe don't use `system` 😛 18:53 <+bridge> [ddnet] system rocks .-. 18:53 <+bridge> [ddnet] hwo do i pause my programms then? 18:53 <+bridge> [ddnet] std::getline(std::cin) or sth 18:53 <+bridge> [ddnet] grpf 18:54 <+bridge> [ddnet] every time you call `system` you're spawning another program, which is pretty expensive on windows e.g. 18:54 <+bridge> [freenode] not to mention incompatible possibly 18:54 <+bridge> [ddnet] hrmpf 18:54 <+bridge> [ddnet] ? 18:54 <+bridge> [freenode] remote env may not have bash ☺ 18:54 <+bridge> [ddnet] u mean win to linux compatible 18:54 <+bridge> [freenode] or bsd or android or whatever 18:55 <+bridge> [ddnet] #ifdef _WIN32 18:55 <+bridge> [ddnet] system("pause >NUL"); 18:55 <+bridge> [ddnet] #elif (__linux__) || (__APPLE__) 18:55 <+bridge> [ddnet] system("read -n1"); 18:55 <+bridge> [ddnet] #endif 18:55 <+bridge> [ddnet] ifdef rocks 18:55 <+bridge> [freenode] O_o 18:55 <+bridge> [freenode] that's... unique... 18:55 <+bridge> [ddnet] ^ 18:55 <+bridge> [freenode] so heinrich5991 - does ChillerDragon have commit access to ddnet? 18:55 <+bridge> [ddnet] xxxxD 18:55 <@heinrich5991> no 18:55 <+bridge> [freenode] thank god 18:55 <@heinrich5991> but he sent PRs already 18:55 <+bridge> [ddnet] hehe 18:57 <@heinrich5991> nemo: but I'm trying to not have a thing like "commit" access anyway 18:57 <@heinrich5991> rather a couple of people who can merge pull requests 18:57 <@heinrich5991> and everyone makes PRs when they code sth 18:57 <+bridge> [ddnet] getchar() works great btw 18:57 <+bridge> [ddnet] maybe im gonna use it instead 18:58 <@heinrich5991> getchar is even a standard C function :) +1 18:58 <+bridge> [ddnet] ye f3 18:58 <+bridge> [ddnet] prs are great 18:58 <+bridge> [ddnet] ye c > c++ 18:58 <+bridge> [ddnet] this looks weird 18:58 <+bridge> [ddnet] xd 18:58 <@heinrich5991> that's undefined behavior 18:58 <+bridge> [freenode] heinrich5991: we're too lazy for that 18:58 <@heinrich5991> ;) 18:58 <+bridge> [ddnet] we have bors 18:58 <+bridge> [freenode] heinrich5991: it's easier to just give someone access if they are fairly responsible than review/merge everything 18:58 <+bridge> [ddnet] the spammer 18:58 <+bridge> [ddnet] xd 18:59 <+bridge> [freenode] heinrich5991: that's how I ended up w/ access - unc0rr got tired of merging my stuff ☺ 18:59 <@heinrich5991> :) 19:00 <+bridge> [freenode] oh. ChillerDragon - there's a silly thing from the IOCCC that I use in shells from time to time that might entertain you 19:00 <+bridge> [ddnet] the word IOCCC already entertains me 19:00 <+bridge> [ddnet] tf is that 19:00 <+bridge> [freenode] alias ccstdin='g++ -pedantic -ansi -Wall -o ~/.stdin+ ~/.stdin.cc -lm && ~/.stdin+' 19:00 <+bridge> [freenode] alias cstdin='gcc -pedantic -ansi -Wall -o ~/.stdin ~/.stdin.c -lm && ~/.stdin' 19:00 <@heinrich5991> international obfuscated C contest 19:00 <@heinrich5991> c 19:00 <+bridge> [freenode] https://www.ioccc.org/ 19:01 <+bridge> [freenode] http://m8y.org/tmp/stdin.c 19:01 <+bridge> [freenode] http://m8y.org/tmp/stdin.cc 19:01 <+bridge> [freenode] $ cstdin 19:01 <+bridge> [freenode] printf("Hello World\n"); 19:01 <+bridge> [freenode] Hello World 19:01 <+bridge> [ddnet] this is some weird stuff 19:01 <+bridge> [freenode] your approach to C reminded me of this 19:02 <@heinrich5991> why so many flags to gcc? 19:02 <+bridge> [freenode] heinrich5991: they accumulated no doubt, over the past 20 years 19:02 <+bridge> [freenode] heinrich5991: mostly was trying to be yelled at for whatever I was testing 19:02 <@heinrich5991> -ansi = please give me the oldest version of C/C++ you have available 19:02 <@heinrich5991> :( 19:03 <+bridge> [freenode] hehe 19:03 <+bridge> [freenode] no doubt I wanted "safest subset" 19:08 <@heinrich5991> nemo: what were the languages again? pascal and haskell? 19:12 <+bridge> [freenode] heinrich5991: oh. for hedgewars? 19:12 <@heinrich5991> yes 19:13 <+bridge> [freenode] heinrich5991: C++/QT5 frontend (iOS and Android have separate frontends ofc), Haskell gameserver (there's a new Rust one unc0rr has started), Pascal engine 19:13 <+bridge> [freenode] heinrich5991: rust for engine might happen. dunno. qt5 is higher priority tho 19:13 <@heinrich5991> rewrite it in rust? 19:13 <+bridge> [freenode] yeh 19:13 <@heinrich5991> mh 19:13 <+bridge> [freenode] well... more like... unc0rr adapts his pas2c converter to pas2rust 19:13 <+bridge> [freenode] then we clean up the result 19:13 <@heinrich5991> :D 19:14 <@heinrich5991> incremental rewrites might be easier :) 19:14 <+bridge> [freenode] eh. the pas2c works already 19:14 <+bridge> [freenode] mostly would be changing concepts 19:14 <+bridge> [freenode] all the tangled up global state 19:14 <@heinrich5991> yea 19:14 <@heinrich5991> you might run into quite a few conceptual problems on the way 19:14 <+bridge> [freenode] possibly. we've been looking into it a bit 19:15 <+bridge> [freenode] the biggest issue, IMO, is the main "gear" iterator - the linkedl ist of struct + function callback for all the things that need to do things in the game 19:15 <+bridge> [freenode] but. I think we can address that reasonably 19:15 <+bridge> [freenode] the other one that's guaranteed to be an issue is the AI - but we've already decided we'll use unsafe for that - screw rust's paranoia ☺ 19:15 <@heinrich5991> … 19:16 <+bridge> [freenode] (the AI has direct access to the land array from a separate thread, and we do not, in fact, care if it mutates out from under us) 19:16 <+bridge> [freenode] so locking is just silly 19:16 <+bridge> [freenode] we'll just unsafe take a refererence to it. moving on. 19:17 <+bridge> [freenode] say, have you seen what the output of his pas2c looks like? ☺ 19:17 <+bridge> [freenode] http://m8y.org/tmp/uGears.c 19:18 <@heinrich5991> make the world's inner members atomics 19:18 <@heinrich5991> then accessing it from different threads is no longer unsafe 19:18 <+bridge> [freenode] yeah. I know. that's what #rust said too 19:19 <+bridge> [freenode] not gonna do it 19:19 <+bridge> [freenode] we don't need it 19:19 <+bridge> [freenode] checkout line, oh, 1527 of that c file ☺ 19:21 <@heinrich5991> nemo: what's wrong with using atomics? :) 19:21 <+bridge> [freenode] heinrich5991: https://hg.hedgewars.org/hedgewars/file/09edbd8a311d/hedgewars/uGearsHandlersMess.pas#l1714 the equivalent line of pascal 19:21 <+bridge> [freenode] heinrich5991: it's not necessary is all 19:21 <@heinrich5991> with Ordering::Relaxed, it should compile down to the same machine code, although you won't invoke UB by modifying stuff while reading it 19:21 <+bridge> [freenode] uh 19:21 <@heinrich5991> (on x86) 19:22 <+bridge> [freenode] how on earth could atomic access ever compile down to same as non-atomic? 19:22 <+bridge> [freenode] but, if it is zero cost, I'm open to it 19:22 <+bridge> [freenode] it seriously doesn't matter tho 19:22 <+bridge> [freenode] the AI only needs a fuzzy view of the Land 19:27 <@heinrich5991> nemo: https://www.cl.cam.ac.uk/~pes20/cpp/cpp0xmappings.html 19:27 <@heinrich5991> Load Relaxed: MOV 19:27 <@heinrich5991> Store Relaxed: MOV 19:29 <+bridge> [freenode] and how does that guarantee atomicity? 19:29 <+bridge> [freenode] isn't really clear to me at all 19:29 <+bridge> [freenode] but again, if it compiles down to 'sact same code as an unsafe read, w/ no extra costs imposed at all, then fine. 19:30 <@heinrich5991> the guarantees you get from relaxed atomics are the ones that intel provides you anyway 19:30 <@heinrich5991> so no extra cost for you 19:30 <+bridge> [freenode] https://stackoverflow.com/questions/31214983/does-loadstdmemory-order-relaxed-cost-same-as-reading-unatomic-variable seems so yeh 19:30 <+bridge> [freenode] aight. fair 'nuff 19:30 <@heinrich5991> atomicity at this level means just "you can only observe the value before it was written and afterwards" 19:30 <+bridge> [freenode] and. sorry. "intel guarantee" is funny 19:30 <@heinrich5991> which is how programmers usually model memory anyway :P 19:30 <+bridge> [freenode] can't help but giggle these days 19:30 <@heinrich5991> ^^ 19:31 <+bridge> [freenode] after meltdown and meltdownprime 19:31 <+bridge> [freenode] from response, seems to be architecture dependent 19:31 <@heinrich5991> yes 19:31 <+bridge> [freenode] I wonder what the situation is on arm 19:32 <+bridge> [freenode] it would matter a lot more there 19:32 <@heinrich5991> would you handle complete garbage values ok in the AI? 19:32 <@heinrich5991> like not these that were there before or are there afterwards 19:32 <+bridge> [freenode] On strongly-ordered systems (x86, SPARC TSO, IBM mainframe), release-acquire ordering is automatic for the majority of operations. No additional CPU instructions are issued for this synchronization mode, only certain compiler optimizations are affected (e.g. the compiler is prohibited from moving non-atomic stores past the atomic store-release or perform non-atomic loads earlier than the atomic lo 19:32 <+bridge> [freenode] On weakly-ordered systems (ARM, Itanium, PowerPC), special CPU load or memory fence instructions have to be used. 19:33 <+bridge> [freenode] yeah. complete garbage values are totally fine 19:33 <+bridge> [freenode] so long as they aren't, oh, more than 1% of the values 19:33 <+bridge> [freenode] which they probably won't be 19:33 <@heinrich5991> … 19:33 <+bridge> [freenode] basically the only thing that matters is "is there collision or not" 19:33 <+bridge> [freenode] most of the time 19:34 <+bridge> [freenode] that is, is the value non-zero 19:34 <+bridge> [freenode] and. it has to actually be checking that cell 19:34 <+bridge> [freenode] out of 8+ million others 19:35 <+bridge> [freenode] of which the vast majority never change after initial load of the map 19:35 <+bridge> [freenode] and, even if it gets wrong value, odds are it wouldn't impact the AI's strategy in any way 19:36 <+bridge> [freenode] and even if it impacted it, most of time it wouldn't impact it in a way that actually has any significance 19:36 <+bridge> [freenode] anyway. would have to see what the cost on ARM is. can always strip it 19:37 <+bridge> [ddnet] http://prntscr.com/ihxwbu 19:37 <+bridge> [ddnet] not even a response 19:38 <+bridge> [freenode] lol 19:38 <+bridge> [freenode] so this jxsl13 person - did they actually contribute anything useful? 19:38 <+bridge> [freenode] 'cause that would be best way to get trusted with commits 19:39 <+bridge> [freenode] or were they just there to complain 19:39 <@heinrich5991> not in the code base, but in the forums 19:39 <+bridge> [ddnet] thats not the point of my screenshot 19:39 <+bridge> [ddnet] read https://www.teeworlds.com/forum/viewtopic.php?id=12115 19:39 <@heinrich5991> nemo: https://www.cl.cam.ac.uk/~pes20/cpp/cpp0xmappings.html 19:39 <@heinrich5991> Load Relaxed: ldr 19:39 <@heinrich5991> Store Relaxed: str 19:39 <@heinrich5991> still 0-cost 19:39 <+bridge> [ddnet] nemo, it recommends other people ot be added as "admin" in the repo, such as heinrich 19:39 <+bridge> [ddnet] to* 19:39 <+bridge> [ddnet] but oy clossed it without even saying a thing xD 19:40 <+bridge> [ddnet] the most funny thing, is that oy clossed the issue in 10 mins but didn't respond to a pr from 2013 yet 19:40 <+bridge> [freenode] " 19:40 <+bridge> [freenode] Note: the only way to get atomic 64-bit memory accesses on ARM without LPAE (the Large Physical Address Extensions) is to use ldrex/strex with a loop (ldrd and strd instructions are not guaranteed to appear atomic). Processors with LPAE have single-copy-atomic LDRD and STRD instructions to normal memory. " 19:41 <+bridge> [freenode] that is proooobably not gonna be a problem 19:41 <@heinrich5991> where do you get this from 19:41 <+bridge> [freenode] your link 19:41 <+bridge> [freenode] Ryozuki_: but, heinrich5991 already is a core dev no? 19:41 <@heinrich5991> nemo: not for teeworlds 19:42 <+bridge> [freenode] ah... 19:42 <@heinrich5991> oy is currently the only one, and refuses to extend it to other ppl 19:42 <+bridge> [ddnet] thats what i mean :) 19:42 <+bridge> [ddnet] and thats how oy killed teeworlds dev 19:42 <+bridge> [freenode] oh well. ddnet seems to be doing fine 19:42 <+bridge> [freenode] unc0rr was much more open w/ his baby 19:42 <+bridge> [ddnet] ye ddnet responds to prs even in the same day 19:43 <+bridge> [freenode] he just complained a lot about all the weird stuff we were doing 19:43 <@heinrich5991> ^^ 19:43 <+bridge> [ddnet] and this is oy response "When I started playing Teeworlds, there were usually just 2 servers with people playing - that was fine. If it goes back to that - still fine. It was never the aim to get a lot of players, it's a niche product, even though it attracted lots of players during time. People start and stop playing games, that's life. Games die and people move on.s." 19:43 <+bridge> [ddnet] with such thinking, dev is for sure dead xD 19:43 <@heinrich5991> wait, nemo: do you need 64-bit atomics? 19:43 <@heinrich5991> the thing you quoted 19:44 <+bridge> [freenode] that's why I said "probably not" 19:44 <+bridge> [freenode] so, we technically support some truly insane map sizes 19:45 <@heinrich5991> more than 4M in each direction? 19:45 <+bridge> [ddnet] "Oy wrote: 19:45 <+bridge> [ddnet] It's not turning into an anti-Teeworlds like ddnt or become mod-friendly etc." 🤔 😂 19:45 <+bridge> [freenode] heinrich5991: for the LandPixels we use 4 bytes for pixel (true colour). 2 bytes for the collision 19:45 <+bridge> [freenode] heinrich5991: we do support maps as large as libpng will load 19:46 <@heinrich5991> well 19:46 <@heinrich5991> you need to access the 2 bytes for collision 19:46 <@heinrich5991> that's a 16-bit atomic load 19:46 <+bridge> [freenode] I'm not saying it's a *sane* thing to do 19:46 <+bridge> [freenode] oh. I misunderstood 19:46 <+bridge> [freenode] I thought it was about addressable size 19:47 <+bridge> [freenode] then yeah. not a problem. only 64 bit type is hwfloat and isn't used for mem access 19:49 <@heinrich5991> "hwfloat" 19:49 <@heinrich5991> intel hwfloat is 80 bit 19:50 <+bridge> [freenode] hw = hedgewars 😉 19:50 <@heinrich5991> ah ;) 19:51 <+bridge> [freenode] it's not actually float either 19:51 <@heinrich5991> fixed point? <3 19:51 <+bridge> [freenode] yep 19:51 <@heinrich5991> cool 19:51 <@heinrich5991> teeworlds deals with floats :( 19:51 <+bridge> [freenode] basically unc0rr ran into the same inconsistency problems that the poor TA:Spring guys were running into 19:51 <+bridge> [freenode] where they were endlessly playing with compiler variations and flags to avoid desyncs on different hardware/OSes 19:51 <@heinrich5991> yes 19:52 <@heinrich5991> we had that recently 19:52 <+bridge> [freenode] I think they ended up resolving it w/ streflop - but prior to that they were super precise about gcc version 19:52 <+bridge> [freenode] you guys aren't deterministic lockstep tho 19:52 <+bridge> [freenode] is death for poor spring/hedgewars. 19:52 <@heinrich5991> true 19:52 <+bridge> [freenode] anyway. he fixed it w/ a fixed point number - he called it float since it was dropin 19:52 <+bridge> [freenode] I think I have an old pdf of the Spring guys testing this 19:52 <@heinrich5991> who are the "spring guys"? 19:53 <+bridge> [freenode] http://m8y.org/spring/sync_matrix.pdf 19:53 <+bridge> [freenode] https://springrts.com/ 19:53 <+bridge> [freenode] I got interested in it due to Total Annihilation - it was intended as a FOSS variant - Total Annihilation being an RTS far ahead of its time - in like 1996 had true 3d terrain and ballistics 19:54 <+bridge> [freenode] later in 2007 Supreme Commander was written - it had an engine suprisingly similar in terms of features to what the Spring guys had come up w/ 😃 19:55 <+bridge> [freenode] http://m8y.org/hw/fp.html this one might entertain you too 19:55 <+bridge> [ddnet] i got supreme commander and its dlc 😌 19:55 <+bridge> [freenode] I never ended up buying that one, was too much into Spring at the time 19:55 <+bridge> [freenode] I did buy Planetary Annihilation tho 19:55 <+bridge> [ddnet] i have it too 19:56 <+bridge> [ddnet] is good 19:56 <+bridge> [freenode] oh. cool. we should play sometime 19:56 <+bridge> [ddnet] tho i dont play lot rts rn 19:56 <+bridge> [freenode] well. I don't have much time to play much of anything 19:56 <@heinrich5991> we're now using -ffloat-store on some gcc versions 19:56 <+bridge> [freenode] I did just finish Starbound - but only way I got away with that is my 5 year old daughter enjoys watching me play 19:56 <+bridge> [freenode] she'd make up stories as to the various creatures I encountered 19:57 <@heinrich5991> is your daughter playing sth? :) 19:57 <+bridge> [freenode] at one point she drew on a bunch of pieces of paper a doodle book of absolutely everything I did that evening in starbound 19:57 <@heinrich5991> nice :o 19:57 <+bridge> [freenode] she plays... Twenty, DragonBox 5+ 19:57 <+bridge> [freenode] and some simple phone games 19:57 <+bridge> [freenode] I highly recommend Twenty BTW if you want a fun simple game for your phone 19:58 <+bridge> [freenode] is free for the basic game 19:58 <+bridge> [freenode] I've gotten up to... 13x20 - my coworker is up to 17 19:58 <+bridge> [freenode] he's got a 2 thumb technique tho 19:58 <+bridge> [freenode] I just can't manage that 19:58 <+bridge> [freenode] my daughter has gotten up to like 17 or 18 or so ☺ 19:58 <+bridge> [freenode] (not 20) 20:00 <+bridge> [ddnet] yo why is teeworlds folder hidden under linux? 20:01 <+bridge> [freenode] ?? 20:01 <@heinrich5991> because it has a leading dot in the name 20:01 <+bridge> [freenode] heh 20:01 <+bridge> [ddnet] is there any reason? to use .teeworlds instead of teeworlds 20:01 <+bridge> [ddnet] ikr 20:01 <+bridge> [freenode] that's standard for config folders under linux 20:01 <@heinrich5991> everything with a leading dot is hidden by convention 20:01 <+bridge> [freenode] to avoid clutter 20:01 <+bridge> [freenode] the only improvement would be to do ~/.local/config/teeworlds 20:01 <+bridge> [ddnet] hm 20:01 <@heinrich5991> if you want, you could support the xdg stuff and put it into .config/ 20:01 <+bridge> [freenode] which, we haven't bothered doing yet 20:01 <@heinrich5991> we neither 20:01 <+bridge> [freenode] it's a hassle ☺ 20:01 <+bridge> [ddnet] hmkay it does make sense 20:01 <+bridge> [freenode] gotta handle migration/legacy 20:01 <+bridge> [ddnet] ty c: 20:02 <+bridge> [freenode] since none of us care enough, hasn't happened ☺ 20:02 <+bridge> [ddnet] why isnt it hidden on macOS then? 20:02 <@heinrich5991> nemo: fun stuff, same in rust: https://github.com/rust-lang/rfcs/pull/1615 20:02 <+bridge> [ddnet] so macOS convention shows config folders? 20:02 <+bridge> [ddnet] I think we put it into a special path on macOS, like on windows 20:02 <+bridge> [ddnet] let me chck 20:02 <+bridge> [ddnet] application support 20:03 <+bridge> [freenode] I assume you guys use Library/Application Support/Teeworlds 20:03 <+bridge> [ddnet] classical thing 20:03 <+bridge> [ddnet] ya 20:03 <@heinrich5991> yes 20:03 <+bridge> [freenode] yeah. MacOS determines how that is displayed 20:03 <+bridge> [ddnet] allright 20:03 <+bridge> [freenode] if you open home folder in macos - how is Library displayed? 20:03 <@heinrich5991> supporting different OSs is fun, right? :) 20:03 <+bridge> [ddnet] yes! 20:03 <+bridge> [ddnet] c: 20:04 <+bridge> [ddnet] what do you mean? 20:04 <+bridge> [freenode] under Windows we use My Documents/Hedgewars 20:04 <+bridge> [freenode] SHGetFolderPathA(0, CSIDL_PERSONAL, NULL, 0, path) 20:04 <@heinrich5991> we use %APPDATA%\Teeworlds 20:04 <+bridge> [freenode] we used to do that 20:04 <+bridge> [freenode] Smaxx (our former windows guy) said it wasn't intuitive for windows users 20:04 <+bridge> [freenode] they wouldn't be able to easily find it 20:04 <@heinrich5991> mh... 20:04 <@heinrich5991> we ship a config_directory.bat 20:04 <+bridge> [ddnet] i like appdata c: 20:04 <@heinrich5991> that opens the folder :D 20:05 <+bridge> [ddnet] its best 20:05 <+bridge> [ddnet] nemo uhm idk Library seems to be hidden 20:06 <+bridge> [freenode] https://hg.hedgewars.org/hedgewars/rev/560e2766c445 20:06 <+bridge> [ddnet] 20:06 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/415947395956867082/Bildschirmfoto_2018-02-21_um_20.06.14.png 20:06 <+bridge> [ddnet] its hidden in gui 20:06 <+bridge> [ddnet] but not in ls 20:06 <+bridge> [freenode] yeah, it's just arbitrary conventions. I dunno. Doesn't suprise me apple hides it tho 20:06 <+bridge> [freenode] APPDATA is hidden in windows no? 20:06 <@heinrich5991> yes 20:06 <+bridge> [ddnet] y 20:06 <+bridge> [freenode] unless you set Show Hidden Files and Folders 20:06 <@heinrich5991> yes, but even then 20:07 <+bridge> [ddnet] so its somehow hidden in macOS too then 20:07 <+bridge> [freenode] "* Hedgewars will now use a sub directory of "My Documents" like other games instead of "%userprofile%/.hedgewars" under Windows" 20:07 <+bridge> [ddnet] but without .teeworlds 20:07 <@heinrich5991> you still have to navigate through C: Users your name 20:07 <+bridge> [ddnet] just in a weird hidden folder 20:07 <+bridge> [freenode] yeah, no idea why Smaxx thought My Documents was better 20:07 <+bridge> [freenode] but he was windows guy, so didn't argue 20:07 <@heinrich5991> backward compatibility strategy: 20:07 <@heinrich5991> * Due to those changes old files/settings/teams will be ignored 20:07 <@heinrich5991> great :P 20:08 <+bridge> [freenode] we did add interface buttons to open the ~/.hedgewars/Data folder (and other locations) so that people who were unfamiliar w/ linux commandline could actually find it ☺ 20:08 <+bridge> [freenode] (or OSX users 😉 ) 20:08 <+bridge> [ddnet] only the entry folder has to be hidden am i right? 20:08 <+bridge> [ddnet] all sub directorys can be listed normal i guess 20:08 <+bridge> [freenode] yeah 20:08 <+bridge> [ddnet] cool 20:08 <+bridge> [freenode] heinrich5991: heh. yeah, yay breaking changes. 20:08 <+bridge> [freenode] heinrich5991: I think we still have unicode problems under windows w/ team names ☹ 20:09 <@heinrich5991> rust solves these <3 20:09 <+bridge> [freenode] \o/ 20:09 <+bridge> [freenode] hm 20:09 <+bridge> [freenode] well 20:09 <@heinrich5991> they did unicode right as well as with interfacing with windows 20:09 <+bridge> [freenode] if we change engine to rust that doesn't fix frontend 20:09 <+bridge> [freenode] http://utf8everywhere.org/ 20:09 <+bridge> [ddnet] frontend sux xd 20:09 <+bridge> [ddnet] uninstall it 20:10 <+bridge> [freenode] qml rewrite of frontend is on the todo 20:10 <+bridge> [freenode] but. dunno if that'll fix the team naming 20:10 <+bridge> [freenode] we probably just need to be more aggressive on escaping 20:11 <@heinrich5991> escaping? 20:11 <+bridge> [freenode] special characters in the filenames 20:11 <@heinrich5991> ah yea 20:11 <+bridge> [freenode] what happens right now is that if someone uses, um, non-BMP unicode, it loads fine in linux 20:11 <+bridge> [freenode] but gets mangled in windows 20:11 <@heinrich5991> do you save the client from arbitrary file overwrites? :) 20:12 <+bridge> [freenode] er? 20:12 <+bridge> [freenode] not sure what you mean 20:12 <@heinrich5991> do you have a "map download to file" function or similar? 20:13 <+bridge> [ddnet] yo nemo how did u even get into this irc? xd 20:13 <+bridge> [ddnet] have u ever played teewoods? 20:13 <+bridge> [freenode] I played w/ heinrich5991 ! 20:13 <+bridge> [ddnet] ah 20:13 <+bridge> [freenode] and. I joined because we were looking for help from you guys w/ our SDL2 migration 20:13 <+bridge> [ddnet] great! 20:13 <+bridge> [freenode] which you helped w/ 20:13 <+bridge> [freenode] I played teeworlds a long long time ago 20:13 <+bridge> [freenode] didnt' care for it 20:13 <+bridge> [freenode] but ddnet is better 20:13 <+bridge> [ddnet] .-. 20:13 <+bridge> [freenode] I like the puzzle aspects 20:14 <+bridge> [freenode] even if I kinda sucked at it 20:14 <+bridge> [freenode] some things were a bit weird graphically. the ice effect esp 20:14 <@heinrich5991> yea, we don't even have graphics/prediction for our main gameplay element :< 20:17 <+bridge> [ddnet] not needed 20:17 <+bridge> [ddnet] its all perfect c: 20:18 <+bridge> [ddnet] getchar(); btw sux bcs it only reacts on enter .-. 20:18 <+bridge> [freenode] heh 20:20 <+bridge> [freenode] ChillerDragon: soooo I hope you seriously aren't bothered by that? 20:20 <+bridge> [freenode] 'cause toggling buffered/unbuffered in a crossplatform way is kind of a PITA 20:20 <@heinrich5991> that's why he was trying system 20:21 <+bridge> [ddnet] hehe 20:21 <+bridge> [ddnet] ye sys rocks 20:21 <+bridge> [freenode] oh. was that the underlying reason. well. you aren't going to solve cross-platform that way 20:21 <+bridge> [ddnet] .-. 20:21 <@heinrich5991> I saw you were already using ncurses? 20:21 <@heinrich5991> it probably has a function for htat 20:21 <+bridge> [ddnet] yerp 20:21 <+bridge> [ddnet] hm 20:21 <+bridge> [ddnet] lemme check 20:22 <+bridge> [freenode] oh. yeah. if he has an ncurses dependency already... 20:22 <+bridge> [freenode] https://linux.die.net/man/3/cbreak ? 20:22 <+bridge> [ddnet] AHAHAHHAHA 20:22 <+bridge> [ddnet] searched for a ncusrses solution 20:22 <+bridge> [ddnet] 2nd answer is using system 20:23 <+bridge> [freenode] … 20:23 <+bridge> [ddnet] https://stackoverflow.com/questions/1449324/how-to-simulate-press-any-key-to-continue#1449355 20:23 <+bridge> [freenode] oh. eh 20:23 <+bridge> [freenode] that's not curses 😝 20:23 <+bridge> [ddnet] i searched for ncurses -.- 20:25 <+bridge> [freenode] http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/init.html yeah. ncurses does same as curses 20:25 <+bridge> [freenode] I would hope that cbreak() is implemented on whatever windows version of the lib is there 20:25 <+bridge> [freenode] last time I built an ncurses anything for windows was w/ a cygwin dependency tho 20:26 <+bridge> [ddnet] well i gues im going to revive my #ifdef agian to seperate oses 20:27 <@heinrich5991> curses seems to have a getch function 20:27 <+bridge> [ddnet] ya 20:27 <+bridge> [ddnet] i used it 20:27 <+bridge> [ddnet] but it didnt stopped somehting yet 20:27 <+bridge> [freenode] er. why not use this cbreak() thing? 20:27 <+bridge> [freenode] seems exactly what you want? 20:28 <+bridge> [freenode] and nocbreak to turn buffering back on 20:29 <+bridge> [ddnet] hum 20:29 <+bridge> [ddnet] im too noob to use it 20:29 <+bridge> [ddnet] it turns buffering off 20:29 <+bridge> [ddnet] so it doesnt pause yet am i right? 20:30 <+bridge> [ddnet] so by combinding it with getchar() it should work fine? 20:30 <+bridge> [freenode] yeah 20:30 <+bridge> [ddnet] doesnt work .-. 20:30 <+bridge> [freenode] whaaat 20:30 <+bridge> [freenode] pastebin? 20:31 <+bridge> [ddnet] ye it still lets me write hughe textts in menu 20:31 <+bridge> [ddnet] pastbin of my cod? 20:31 <+bridge> [ddnet] e 20:31 <+bridge> [ddnet] yes 20:31 <+bridge> [ddnet] https://github.com/ChillerDragon/chidraqul6/master/src/client/base.cpp 20:31 <+bridge> [ddnet] gg 20:31 <+bridge> [ddnet] xd 20:31 <+bridge> [ddnet] sec 20:32 <+bridge> [freenode] heh 20:32 <+bridge> [freenode] not to mention a stripped down testcase would be appreciated 😝 20:32 <+bridge> [ddnet] forhot the blob 20:32 <+bridge> [ddnet] https://github.com/ChillerDragon/chidraqul6/blob/master/src/client/base.cpp 20:32 <+bridge> [ddnet] line 12 20:33 <+bridge> [ddnet] well ait 20:34 <+bridge> [ddnet] i didnt push yet xd 20:34 <+bridge> [ddnet] haha fok me 20:35 <+bridge> [freenode] I gotta think a pastebin of a testcase would be a lot faster 😝 20:35 <+bridge> [ddnet] idk what do you mean by that 20:35 <@heinrich5991> not only for nemo 20:35 <+bridge> [ddnet] `` 20:35 <+bridge> [ddnet] cbreak(); 20:35 <+bridge> [ddnet] getchar(); 20:35 <+bridge> [ddnet] nocbreak(); 20:35 <+bridge> [ddnet] `` 20:35 <+bridge> [freenode] just would like a mini program similar to your "system" example above 20:35 <+bridge> [ddnet] these lines i use 20:35 <@heinrich5991> it might be helpful for yourself if you try it out on your own in a small testcase 20:36 <+bridge> [freenode] ok... and in a small testcase, does it not work as expected? 20:36 <+bridge> [ddnet] no it works as getchar() without any changes 20:36 <+bridge> [ddnet] i can press all keys and entering a message 20:36 <+bridge> [ddnet] it waits for the enter 20:37 <+bridge> [freenode] you just can't be bothered to send us your reduced testcase 20:37 <+bridge> [freenode] btw you *are* testing in a reduced testcase right? 20:37 <+bridge> [ddnet] nope 20:37 <+bridge> [ddnet] well i can try to crate a testcase for u c: 20:38 <+bridge> [freenode] \o/ 20:38 <@heinrich5991> not only for nemo, it's also good for yourself to create a reduced test case 20:38 <@heinrich5991> faster testing :) 20:38 <@heinrich5991> the knowledge that the proble doesn't lie elsewhere 20:38 <+bridge> [ddnet] in this case... 20:43 <+bridge> [ddnet] https://pastebin.com/raw/GB97N2ea 20:44 <+bridge> [freenode] I like that you added a license 20:45 <+bridge> [ddnet] ikr xd 20:47 <+bridge> [ddnet] ``` 20:47 <+bridge> [ddnet] #include 20:47 <+bridge> [ddnet] int main() { 20:47 <+bridge> [ddnet] initscr(); 20:47 <+bridge> [ddnet] noecho(); 20:47 <+bridge> [ddnet] cbreak(); 20:47 <+bridge> [ddnet] getch(); 20:47 <+bridge> [ddnet] nocbreak(); 20:47 <+bridge> [ddnet] echo(); 20:47 <+bridge> [ddnet] return 0; 20:47 <+bridge> [ddnet] } 20:47 <+bridge> [ddnet] ``` 20:47 <+bridge> [ddnet] gcc a.c -lncurses 20:47 <+bridge> [ddnet] `gcc a.c -lncurses` 20:47 <+bridge> [ddnet] `./a.out` 20:47 <+bridge> [ddnet] works for me 20:48 <+bridge> [freenode] yeah. he was lacking the initscr(); 20:48 <+bridge> [freenode] the noecho isn't necessary ofc 20:48 <+bridge> [freenode] hm. how was an ncurses program working without that? 20:48 <+bridge> [freenode] I thought that was like fundamental 20:48 <@heinrich5991> ChillerDragon: do you use any other functions from ncurses? 20:49 <+bridge> [ddnet] hmm idk i have some initscr all over the place in the src 20:49 <+bridge> [ddnet] i think so 20:49 <@heinrich5991> it's the noecho you're missing I believ 20:49 <@heinrich5991> if it's "there is still character output when I type" 20:50 <+bridge> [ddnet] it works great in the testcase btw 20:50 <+bridge> [ddnet] but it fucks my game lul 20:50 <+bridge> [ddnet] like totally 20:51 <+bridge> [ddnet] you just createt a whole new game 20:51 <+bridge> [ddnet] this is escalating way too hard im going to stick to the getchar() for now lul 20:51 <+bridge> [ddnet] but ty for ur support guiis c: