Time Nick Message 06:30 citrons I am having formspec problems. I can't get the scrollbar to work 06:31 citrons I don't understand what units it uses, and whatever I set min or max to in scrollbaroptions, it doesn't do anything 06:31 citrons the handle of the scrollbar just takes up the entire scrollbar 06:33 citrons I have code which generates a formspec that looks like this https://0x0.st/oXCI.txt 08:12 definitelya ### `scrollbar[,;,;;;]` 08:13 definitelya line 2758 in lua_api.txt 08:16 definitelya >0< 08:35 definitelya lines from 1346 for coordinate info. 09:55 erlehmann wanna breack bedrock in mineclone2 current master branch? just use blazes, their explosions can do that. 10:14 Ingar n 10:23 MTDiscord breaking bedrock on t h e o l d e s t a n a r c h y s e r v e r i n m i n e t e s t 10:30 erlehmann i believe that was clamity 10:30 erlehmann and yes, i did berak a bit of bedrock there lol 10:30 erlehmann using multiple methods 10:30 erlehmann but tbh i never figured out the blaze thing until this morning 10:30 erlehmann mineclone2 mobs were cool, then jordan made them more cool, but abandoned it halfway through 10:31 erlehmann so now you have stuff like this for, i don't know, probably more than 10 months 10:31 erlehmann cora proposed to just copy over the old mobs from mineclonia to have something that works 11:01 Andrew Has anyone seen the Amongus mod recently? 11:01 Andrew I'm testing it on a test server, it seems to work 11:02 Andrew (fly and noclip are messed up, not a problem lol) 11:12 tech_exorcist Andrew: https://github.com/search?q=minetest%20among%20us one of those? (I did look on the forums and on content.minetest.net, and I only found a game request from 2020: https://forum.minetest.net/viewtopic.php?f=49&t=25485) 11:13 Andrew https://github.com/Graines2Tech/minetest-amongus 11:13 tech_exorcist thanks 11:14 Andrew It's quite good, just hard to figure out without any documentation 11:14 Andrew * quick start guides, etc 11:20 tech_exorcist is it available in any languages other than French? 11:22 Andrew It seems to be in English to me 11:22 kabou Q about the android version of minetest: 11:22 Andrew Granting worldedit by default, are you kidding me? 11:23 kabou is there a way to get back to the menu? 11:23 kabou I've looked at docs, wiki, etc, but no mention of it anywhere 11:23 tech_exorcist kabou: press your device's "Back" button, which will open the pause menu 11:24 kabou tech_exorcist tnx a bunch 11:24 tech_exorcist from there, press "Go to Menu" or similar (I forgot how it's called in English) 11:24 tech_exorcist you're welcome :) 11:24 kabou wish that was documented somehow 11:24 kabou gonna test if it actually works for me and put in an issue about the lack of documentation 11:25 kabou such an issue would at least serve as documentation for others who are looking for that answer 11:25 tech_exorcist maybe you can add it somewhere in the wiki 11:25 tech_exorcist let me check 11:25 kabou I have no wiki privs 11:25 erlehmann amogus 11:25 erlehmann i have a friend in rome you know 11:25 erlehmann anyone can guess his name? 11:25 Andrew It works partially 11:25 MTDiscord amogus 11:25 Andrew many bugs, irnoing out 11:25 erlehmann SUSSUS AMOGUS 11:26 erlehmann he has a wife you know 11:26 erlehmann they call her 11:26 erlehmann IMPOSTORIA 11:26 tech_exorcist https://wiki.minetest.net/Minetest_on_Android 11:27 kabou tech _exorcist confirmed hte back button works 11:27 MTDiscord minetest on android, and 99 other hilarious jokes 11:27 kabou but I did not find any mention of it on the wiki 11:28 kabou did i miss it? 11:28 kabou sublayer_plank indeed and it crashes and burns since 5.5 11:28 erlehmann hey kabou about the mapping table 11:28 erlehmann the reason i do not have one is simply because i want my improved mcl_maps to work first 11:29 erlehmann i am laying the ground work 11:29 kabou erlehmann all mcl games crash upon startup on android with no usable info in debug log 11:29 MTDiscord kabou: does minetest 5.5 crash on android? 11:29 erlehmann that is unfortunate 11:29 erlehmann literally *no* info in debug log? 11:29 kabou erlehmann the mmaps its fine, just wanted to give you a pointer to consider for later times when the cart. table may be added 11:29 MTDiscord please check logcat if you're able to, it should give a stacktrace 11:29 erlehmann kabou did you try maps pr branch? 11:29 kabou erlehmann  it seems to be a hard crash in mt engine 11:30 erlehmann well there are lots of ways that can happen 11:30 kabou erlehmann no, busy with other stuff, sry 11:30 erlehmann ok 11:30 erlehmann so about the android 11:30 erlehmann what does logcat say 11:30 MTDiscord unfortunately there's no accessible debug apks without building from source so the stacktraces will be more or less useless... >.> 11:31 kabou erlehmann couldnt yet be bothered to install full on android dev suite in order to use logcat 11:31 kabou but rubenwardy is looking into it 11:31 erlehmann yes android sucks i know lol 11:31 erlehmann good 11:31 kabou there is an mt issue about it 11:31 MTDiscord you just need adb which is part of the regular android platform tools 11:31 tech_exorcist ^ 11:32 kabou right now on my agenda is getting familiar with lua, mt lua api, mcl api and conventions 11:32 kabou android dev stuff is low prio 11:32 kabou I'd rather focus on getting my android devs freed up with true free software 11:33 kabou so not very interested in diving into the google dev ocean 11:33 kabou it may be ocean sized, but IMHO it is still a swap 11:33 kabou swamp 11:34 Andrew Is there --terminal in minetestserver? One way to find out 11:34 definitelya Android is the deepest swampiest swamp for mobile progress. 11:34 MTDiscord hm, I probably should try to reproduce the crash using a debug apk and see if there's anything useful in the stacktraces 11:34 kabou imma bit of a free software cultist 11:34 kabou tho pragmatic 11:34 MTDiscord minetest android 5.5 seems to be really unstable, the update was even halted for the play store 11:34 Andrew Yes, there is 11:35 kabou my device got the update, so that I could witness the breakage 11:35 MTDiscord Andrew: minetestserver is basically just minetest but without a client so yeah, all commandline arguments still exist 11:35 Andrew Yeah 11:35 Andrew *uses --go --address* 11:36 kabou allright, i have another question, about thye forums 11:36 MTDiscord ugh, when is the android version getting the gamebar, I'm sick of having to mod builtin to get it 11:37 kabou cora took up maintenainership of mineclone2 but the lead post of the mineclone2 thread in the wip games subforum is still owned by eliasfleckenstein, who resigned recently 11:37 kabou who can fix this up on the forum? 11:38 kabou cora isn't a forum regular and I don't even have a forum account, but this should be fixed by a forum admin 11:38 kabou who to talk to? 11:39 MTDiscord hm, I can't reproduce the crash on android with mcl2 11:39 MTDiscord 5.5 ofc 11:42 kabou Sublayer plank try installing any of the mineclones 11:44 MTDiscord can't reproduce either with mcl2 or 5 >.> 11:45 MTDiscord is it because I use ogles2? 11:49 kabou dunno, how much ram does you android thingy have? 11:50 kabou mine has 2GB RAM, which mt adroid apparently finds lacking# 11:51 kabou my android is ver 8.smth 11:52 * Andrew builds the amongus server with another person 11:52 kabou issue submitted #12070 11:52 ShadowBot https://github.com/minetest/minetest/issues/12070 -- Getting back to menu on android client underdocumented 11:52 MTDiscord I've got 4GB, so maybe it's an OOM issue? 11:53 kabou Sublayer_plank that is what #12062 suggests 11:53 ShadowBot https://github.com/minetest/minetest/issues/12062 -- Frequent crashes on Android, no error log in debug.txt 11:55 kabou imho its defo an issue, as a) no crash info logged; b) lots of android clients have 2GB ram 11:56 erlehmann minetest should not even use 2GB RAM using any of the mcl games 11:57 erlehmann the only time where i have seen it using more than ~1.6G VIRT ~900 RES or so was when a memory leak happened 11:57 erlehmann which can indeed be the case 11:57 erlehmann look at the mineclonia fire PR, there were two memory leaks in fire spread code 11:57 erlehmann i believe mineclone5 may have included that code, not sure 11:58 erlehmann (the one where the bugs were not fixed, surely it will have the fixed version soon) 12:11 Andrew Wait, what's the difference between //allocate and //load? 12:11 Andrew I only used load 12:12 MTDiscord minetest has memory leaks even on desktop where it will just progressively use more and more memory as you leave it open and repeatedly join and quit worlds, it's probably way worse on a device with more limited resources like a phone 12:12 MTDiscord I've got some older phones with less memory, I should probably build a debug apk of 5.5 and test it there 12:13 * Andrew wants a way to load mods without restarting 12:16 MTDiscord how would that work lol 12:16 erlehmann the answer is obviously: software is magic and I WANT IT TO JUST WORK 12:17 kabou do what I mean, not what I say 12:17 kabou the core essence of people's computer problems 12:18 kabou I learned so much about humans from computers 12:19 kabou I even came to believe that there are parapsychological aspects to language 12:19 definitelya kabou: Why did you need to learn about humans? Are you cyborg? >.> 12:19 kabou the transference of meaning 12:19 kabou if you want to ponder about what it means to be human, watch these movies: 12:19 kabou blade runner 12:19 kabou 2001 a space oddysee 12:20 kabou in space odyssee, HAL is actually the only round person 12:20 kabou ie the only one exhibiting feelings and active empathy 12:20 erlehmann next up: cylons did nothing wrong, change my mind 12:21 kabou all th ehuman characters appear robotic 12:21 kabou check it out if you want 12:21 kabou in blade runner, it is even more dramatic, tho more obfuscated 12:21 kabou basically "replicants" are what humans are and do 12:21 kabou no real emotions 12:22 kabou stunted development 12:22 kabou there was a big discussion in the blade runner fan communtiy wether deckard (the protagonist) was himself a replicant 12:23 erlehmann i know the answer to the turtle in the desert question 12:23 kabou if you look closely (andspell out the dialogue) it is kinda obvious that all the personages are replicants 12:23 erlehmann you encounter a turtle in the desert lying on the back, but you do not help it to get upright, why 12:23 erlehmann there are two answers to this 12:23 kabou there is only doubt wether Gaff is one. he might be, might not be 12:23 definitelya help truttle 12:23 erlehmann the answer is 12:24 erlehmann 1. you are yourself a turtle lying on its back 12:24 definitelya hot 12:24 erlehmann 2. turtles are shaped like gömböc and can upright themselves 12:24 definitelya Cause it's a desert 12:24 erlehmann https://en.wikipedia.org/wiki/G%C3%B6mb%C3%B6c 12:24 kabou erlehmann notice how the interviewee is dressed as an institutionalized mental patent and the interviewer as a psychiatrist 12:24 definitelya Hot turtle 12:24 kabou also noticed 12:24 erlehmann > known physical example of a class of convex three-dimensional homogeneous bodies, called mono-monostatic, which, when resting on a flat surface have just one stable and one unstable point of equilibrium. The existence of this class was conjectured by the Russian mathematician Vladimir Arnold in 1995 and proven in 2006 12:25 kabou also notice the ambience of hypnotism and intimidation about the questioning 12:25 erlehmann > Gömböc, is the first mono-monostatic shape which has been constructed physically. It has a sharpened top, as shown in the photo. Its shape helped to explain the body structure of some tortoises in relation to their ability to return to equilibrium position after being placed upside down. 12:25 definitelya kabou: Those movies are really transcendental, well said. 12:26 definitelya They almost let you grasp the concept of a singularity (man and machine, united in body and spirit). 12:26 kabou definitely I have always wondered why I rarely read the observations I made above in discussions about / descriptions of these movies 12:27 kabou it seems so fundamental to the drama of these art works 12:27 kabou btw, another funny one is "the birds" by hitchcock 12:27 kabou the birds are really "women" 12:28 kabou "bird" is british slang for "girl" 12:28 erlehmann wow 12:28 erlehmann soon you say 12:28 kabou look at the movie from a distance and it makes total sense 12:28 erlehmann that the train going into a tunnel 12:28 erlehmann is a symbol for something sinful 12:28 Fleckenstein cheese pizza 12:28 kabou the bird expert featured in the movie is a lesbian - lol 12:28 erlehmann the bird is the word 12:29 erlehmann b-b-b-bird-bird-bird 12:29 erlehmann b-b-bird 12:29 kabou btw the author of the original story that hitchcock made into a movie is also interesting 12:31 definitelya >0< 12:32 definitelya Something sinful 12:32 independent56 Is there a mod which detects crashes and gives users the error info when they join? 12:32 Fleckenstein no 12:33 Fleckenstein because when the server crashes 12:33 Fleckenstein its crashed 12:33 Fleckenstein ded 12:33 kabou daphne du maurier, alleged part time lesbian herself,  was the granddaughter of  george du maurier - author of "svengali" 12:33 independent56 Shame 12:33 definitelya Fleckenstein: Please beehave 12:33 Fleckenstein wdym 12:33 definitelya s/beehave/behave 12:33 Fleckenstein this is an answer to the question 12:33 kabou svengali is a true depth charge that is commonly looked away from in contemporary cultural review 12:34 definitelya I have been defeated, once more. 12:34 erlehmann https://youtube.com/watch?v=uSlB4eznXoA 12:34 erlehmann “alleged part time lesbian” 12:34 erlehmann lol 12:35 erlehmann b-b-bird-bird-bird 12:35 erlehmann b-b-bird 12:36 kabou I'd like to see family guy's take on "svengali" - considering how the show is a big toddlerish witewash of the cia 12:36 kabou nuff spiracies for now 12:36 kabou figure it out ppl 12:36 erlehmann you are confusing family guy with american dad 12:36 kabou oh yeah right, sry 12:37 kabou i'm not really into tv and stuff 12:37 kabou beavis and butthead is where i tuned out and turned off 12:38 * kabou counts his grey hair 12:38 kabou surprisingly few actually 12:39 * kabou lives the easy life 12:40 kabou motto: don't fuck the system, let the system fuck itself 12:40 kabou just stand and watch in bemuse awe 12:40 kabou bemused 12:48 MTDiscord man why does minetest android always build so much faster than minetest on any other platform 12:48 MTDiscord that makefile must contain magic 12:49 MTDiscord oh no wait, it uses clang right? must be it then 12:49 Fleckenstein i just disabled vsync in my game and got 250 FPS 12:49 Fleckenstein on a machine that runs Minetest with 45 FPS 12:50 MTDiscord coolio 12:51 MTDiscord I wonder if the gamebar will be enabled by default on android for 5.6.0 12:51 MTDiscord it sure could use it 12:56 erlehmann sublayer plank, why would compiling using clang be much faster? 12:56 erlehmann Fleckenstein did you get tear effects and such without vsync? 12:57 Fleckenstein no 13:02 MTDiscord erlehmann: dunno, it's the only other difference between building for android and linux I can think of 13:03 erlehmann ??? 13:03 erlehmann i thought android is linux? 13:04 MTDiscord well I mean desktop linux, where you usually compile minetest with GCC (I do, at least) 13:04 MTDiscord I should probably also do a bit of a more scientific comparision than "hm it feels like android build is more brr" 13:05 erlehmann I'd just like to interject for a moment. What you're refering to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. 13:05 erlehmann https://stallman-copypasta.github.io/ 13:05 erlehmann ^^ 13:06 erlehmann sublayer plank if you want to have a faster build on desktop you a) should probably ditch make b) should eventually ditch cmake c) only use ninja if you manage to make it check deps based on hashes, not timestamps (it's dog slow otherwise) 13:07 erlehmann or ask josiah_wi who is working on that 13:07 erlehmann that cmake monstrosity 13:07 erlehmann josiah_wi probably knows much better what makes the build slow than i do 13:07 Fleckenstein what do i do about #include dependency hell? 13:08 erlehmann fleckenstein explain more? 13:08 Fleckenstein well i dont really know what files to include and what not 13:08 MTDiscord funnily enough android is not GNU/Linux since it uses busybox and its own libc 13:08 Fleckenstein i mean i can add include directives until it works 13:09 MTDiscord anyways does cmake-generated ninja files check based on hashes? 13:09 erlehmann sublayer plank yeah you mean android/linux vs gnu/linux 13:09 erlehmann sublayer plank AFAIK ninja rejected the patch to make it use hashes lol 13:09 Fleckenstein but if there is file.h that includes stdbool because it needs that for one of its data structures, and i have file.c that includes file.h and uses data structures from there as well as bools 13:09 definitelya Android is Goog/Linux(TM) 13:09 MTDiscord oh welp that sucks 13:09 Fleckenstein should i include stdbool in file.c again or no 13:09 Fleckenstein and is there some way to automate it 13:09 erlehmann Fleckenstein yes include guards will help you 13:10 Fleckenstein yea thats not the problem 13:10 erlehmann to make sure it is only included once 13:10 Fleckenstein i know and im already doing that 13:10 Fleckenstein but its still a bit messy if i never know what is actually required to be included and what not 13:10 sfan5 I generally wouldn't believe erlehmann's claims such as that ninja is "dog slow" because it does not use the solution he personally considers ideal 13:11 Fleckenstein and if i dont include stdbool, and then dont use file.h anymore and remove the include and suddenly the unrelated bools stop working 13:11 Fleckenstein its more a tidyness problem that bugs me 13:11 sfan5 Fleckenstein: file.c should not include what file.h already includes (they belong to eachother), but if you have anotherfile.c it should include stdbool anyway even if it already transitively included 13:12 Fleckenstein im talking about the anotherfile.c case 13:12 Fleckenstein now what if bools are only used in the context of interaction with the structures from file.h 13:13 sfan5 then it's file.h's responsibility to include it 13:13 erlehmann sfan5 yeah, but then again you also did not believe that PNG has so much overhead that even uncompressed tga is smaller for small pictures. i have measured it and the problem is not ninja, the problem is timestamp-based freshness-calculation. 13:13 Fleckenstein where do i draw the line, or do i really only include stuff that has never before included, even if it makes logically more sense 13:13 Fleckenstein to include it again 13:13 erlehmann you can measure it too 13:13 sfan5 consider this: any header file you have should not raise compiler errors if you create an empty file that is '#include "myfile.h"' 13:14 Fleckenstein yes yes 13:14 erlehmann sfan5 hash-based freshness becomes slower when during the build you have to hash a disk image or something, of course. 13:14 Fleckenstein the question is more about what to include in the c file 13:14 erlehmann but for most stuff the hashing is basically free and *faster* than building something twice 13:15 erlehmann (for 4GB sd card image it is generally not) 13:15 sfan5 you should aim for the same but it happens more often that you accidentally have transitive dependencies 13:15 erlehmann as i said, measure measure measure 13:16 erlehmann see here, a problem we already know btw https://github.com/ninja-build/ninja/issues/1459 13:16 Fleckenstein if i have my_struct.h that does #pragma once #include typedef struct {bool a} MyStructure; and i have file.c that does #include "my_struct.h" bool a; MyStructure b; 13:16 erlehmann > I use git a lot and it is annoying that simply changing branches triggers rebuilds. Ideally, I would be able to switch from my current work branch to some other branch, not touch any files and then switch back to the original branch and not have to rebuild anything at all. 13:16 Fleckenstein should file.c also include stdbool or no 13:16 erlehmann sfan5 sublayer plank fleckenstein here is the thing, you can try it out https://github.com/ninja-build/ninja/pull/929 13:17 sfan5 Fleckenstein: it should 13:17 Fleckenstein oki 13:17 Fleckenstein thats what i have been doing p much 13:17 erlehmann so what they say is 13:17 erlehmann > Ninja is an mtime-based system for speed reasons 13:18 Fleckenstein but its difficult to draw the line between "usage of bool is unrealated to MyStructure" and "it is related" 13:19 Fleckenstein damn this is really one of the less nice sides of C 13:19 erlehmann but truly, you only need to check ctime 13:19 erlehmann and only if ctame changed you hash 13:19 MTDiscord erlehmann: what hashing algo does the PR use? xxHash? 13:19 sfan5 erlehmann: that looks irrelevant for the "clean build once" case sublayer plank was wondering about 13:19 sfan5 but maybe you meant in general 13:20 erlehmann sfan5 not if you touch something during the build (which surprisingly many projects do) 13:20 erlehmann but yeah in general 13:20 erlehmann in general it makes sense to take ctime (NOT mtime) 13:21 erlehmann and if it is not matching, hash the target 13:21 erlehmann this makes the build faster in general if your hashing is faster than rebuilding 13:21 erlehmann and it makes the first build faster if you are relying on stuff you depend on a lot 13:21 erlehmann like precompiled headers 13:22 MTDiscord yeah it's sorta irrelevant for clean builds but I consider short and quick incremental builds to be quite important too. irritating to change one variable and then it needs to recompile half of the engine, or to start over the entire build process when makepkg reclones minetest 13:22 erlehmann or if you rebuild files during the build twice 13:22 erlehmann well, they have to be *really* clean 13:22 erlehmann i.e. no touchy any thing 13:23 erlehmann i have several cases where i rebuild my website 13:23 erlehmann it is stored in git 13:23 erlehmann and unsurprisingly, doing git stuff during the build confuses build systems that rely on timestamps 13:25 MTDiscord hmm... does ninja use ninja to compile lol 13:25 erlehmann btw this is really not about hash functions 13:25 erlehmann but about a build system having a way to say, at runtime, wait, this target considered dirty is clean after all 13:26 erlehmann hash functions are just the most common way to do that 13:26 erlehmann many systems lack such a check 13:38 Fleckenstein can poll a condition variable in a nonblocking way? 13:40 Fleckenstein (in pthread) 13:53 sfan5 if you are asking this question an atomic bool is likely what you actually want 13:54 sfan5 the answer is yes though, pthread_cond_timedwait can do it 13:54 Fleckenstein > atomic bool is likely what you actually want 13:55 Fleckenstein haha this is literally what i have been using 13:55 erlehmann is this the volatile thing again 13:55 Fleckenstein yes 13:55 erlehmann diese variable ist voller teile 13:56 Fleckenstein but its a bool 13:56 Fleckenstein not a struct 13:56 Fleckenstein lol 13:56 Fleckenstein it does not have different parts 13:56 erlehmann do you want a sneaky C memory saving tip 13:56 sfan5 another tip: if you are using volatile you are doing it wrong 13:57 erlehmann #define struct union 13:57 Fleckenstein im using -O3 maybe thats my mistake 13:57 erlehmann no 13:57 erlehmann if your code is optimization-unstable, it is likely your code and not the compiler that contains a mistake 13:57 sfan5 if compiler optimizations break your program then it was already broken 13:57 Fleckenstein sfan5: i use a atomic bool to wait for a thread like this: while (! finished); 13:57 Fleckenstein and it optimizes it away 13:57 erlehmann for once sfan5 and me agree lol 13:57 sfan5 uhm 13:57 Fleckenstein without volatine 13:57 Fleckenstein *volatile 13:57 Fleckenstein so i wanted to switch to a condition variable 13:57 sfan5 C or C++? 13:58 erlehmann C 13:58 Fleckenstein C 13:58 Fleckenstein the thing is there is another thread waiting for the same thing where i need it to be nonblocking 13:58 sfan5 you should be using this https://en.cppreference.com/w/c/atomic/atomic_load 13:58 Fleckenstein so should i use both a condition variable and an atomic bool 13:58 sfan5 but more importantly have you heard of pthread_join? 13:59 Fleckenstein yea but i dont want to join 13:59 Fleckenstein because i dont want the thread to end first 13:59 erlehmann https://stackoverflow.com/questions/21579974/define-struct-union-and-define-else-still-compiles-any-c-program 13:59 erlehmann i think it may pay off to read a book on the topic tbh 14:00 Fleckenstein i have a counterexample to the struct union thing i think 14:00 Fleckenstein struct a {int b : 4;}; 14:00 erlehmann well it is, of course, a joke hehe 14:00 Fleckenstein bit fields 14:00 Fleckenstein i dont think they work with unions 14:00 Fleckenstein or maybe they do idk 14:00 sfan5 if you have two waiters you need two condition variables, an atomic bool like I suggested only makes sense if all your usage is non-blocking 14:01 Fleckenstein oh ok 14:01 Fleckenstein btw how do i make an atomic bool in C? is there any difference between int in C and std::atomic_int in C++? 14:02 erlehmann Fleckenstein https://linux.die.net/man/3/pthread_cond_wait 14:02 erlehmann is this a thing you need 14:02 erlehmann ??? 14:02 sfan5 you mean std::atomic? atomic_int is the C type 14:02 Fleckenstein yes 14:02 Fleckenstein on my machine TM just bool is atomic 14:02 sfan5 https://en.cppreference.com/w/c/atomic <- atomics in C11 14:02 Fleckenstein but thats not the standard maybe idk 14:02 sfan5 no, nothing is atomic if you do not use the right functions 14:03 sfan5 https://en.cppreference.com/w/cpp/atomic/atomic <- std::atomic in C++11 14:03 Fleckenstein how do i install the full pthread man pages on my ubuntu system? 14:04 Fleckenstein like i have some but not all 14:04 Fleckenstein which is weird 14:04 sfan5 https://www.google.com/search?client=firefox-b-d&q=libc+man+pages+ubuntu 14:07 Fleckenstein hmmm ... if i work with plain c, do i need to wrap it with a mutex? 14:07 sfan5 what is "it" 14:07 Fleckenstein the bool 14:07 Fleckenstein it does not really seem like that since it works perfectly fine without on my machine, is this really not the standard 14:08 erlehmann apt-file btw 14:08 erlehmann use apt-file search 14:08 erlehmann to figure out which package contains a file 14:08 Fleckenstein im not familiar with the man-db file structure so that would not have helped 14:09 Fleckenstein i cant really find any resources on atomic in plain C 14:09 sfan5 if you use a bool from multiple threads and wrap it in a mutex while used you're just doing by hand and more complicated what atomics could do for you 14:10 erlehmann ; apt-file search 'pthread' |grep /usr/share/man |cut -d' ' -f1| sort |uniq 14:10 erlehmann manpages-posix-dev 14:10 erlehmann manpages-dev 14:10 erlehmann glibc-doc 14:10 Fleckenstein > atomics could do for you 14:10 Fleckenstein im not going to use C++ ok 14:11 sfan5 ok? 14:11 sfan5 atomics are not exclusive to C++ 14:11 Fleckenstein the problem with wrapping them in a mutex is not that i have to do that, but rather performance concerns 14:12 Fleckenstein im not sure whether its actually needed 14:13 sfan5 "can I skip on locking to save some performance" is not what you should be thinking about 14:13 sfan5 but also if you are concerned about that use atomics 14:14 Fleckenstein like i dont see a reason why a single byte should not be atomic by nature 14:15 erlehmann no type is “atomic by nature” 14:15 Fleckenstein whats gonna happen if i change it from thread A while reading it from thread B? how am i supposed to get the wrong result if everything i care about is a single bit at the beginning on the thing 14:15 sfan5 https://stackoverflow.com/a/35234900 14:16 erlehmann https://en.wikipedia.org/wiki/Memory_barrier 14:16 erlehmann > Memory barriers are necessary because most modern CPUs employ performance optimizations that can result in out-of-order execution. This reordering of memory operations (loads and stores) normally goes unnoticed within a single thread of execution, but can cause unpredictable behaviour in concurrent programs and device drivers unless carefully controlled. 14:16 Fleckenstein hmm ok 14:17 erlehmann atomics is more than a single byte 14:17 erlehmann if it is non atom 14:17 erlehmann then you may have an old copy or something 14:18 Fleckenstein yes but if its just an on/off switch? 14:18 erlehmann or compiler may reorder your execution some way, what do i know 14:18 Fleckenstein it actually does that yes 14:18 erlehmann https://en.wikipedia.org/wiki/Memory_barrier#Example 14:18 sfan5 the SO answer explain this, you should read it 14:18 erlehmann > One might expect the print statement to always print the number "42"; however, if thread #2's store operations are executed out-of-order, it is possible for f to be updated before x, and the print statement might therefore print "0". Similarly, thread #1's load operations may be executed out-of-order and it is possible for x to be read before f is checked, and again the print statement might therefore print an unexpected 14:18 erlehmann value. 14:18 ShadowBot https://github.com/minetest/minetest/issues/2 -- Burned wood 14:18 ShadowBot https://github.com/minetest/minetest/issues/1 -- GlowStone code by anonymousAwesome 14:19 erlehmann yes the SO answer is good 14:19 erlehmann > under the "as-if" rule the compiler is allowed to re-order stores and loads as it sees fit as long as all access to volatile memory occurs in the order specified by the program "as if" the program was evaluated according to the wording in the standard. 14:19 erlehmann as-if LOL 14:20 erlehmann > a seemingly innocent use of a raw int as a signaling variable in multi-threaded programming is broken, even if writes and reads may be indivisible, the ordering may break the program depending on the compiler 14:20 Fleckenstein yea ok i understand now 14:20 Fleckenstein makes sense 14:20 erlehmann did you read the SO answer though 14:20 erlehmann there is more to this 14:20 erlehmann than what i said 14:20 definitelya erlehmann: xD 14:21 Fleckenstein i have read most of it 14:21 erlehmann > there is a period after a write by one core where a read by a different core can still get the old value 14:21 erlehmann > the store has both happened and not happened, depending on where you observe from 14:23 erlehmann well 14:24 erlehmann in my defense, you initially asked me only how to prevent the compiler from touching your loop ^^ 14:24 Fleckenstein yea 14:25 Fleckenstein > if you have two waiters you need two condition variables 14:25 Fleckenstein then what is pthread_cond_broadcast for 14:25 sfan5 maybe you don't actually need two idk 14:25 sfan5 but if you have one doing non-blocking checks and one doing a wait I bet that will fall apart 14:26 Fleckenstein yea 14:26 sfan5 maybe you should rethink your program structure 15:20 erlehmann Sublayer plank https://cor3ntin.github.io/posts/compiletime/ 15:20 erlehmann > Build C++ from source: Part 1/N - Improving compile times 15:22 erlehmann > Both MSVC and Clang have tools to profile the most costly parts of your build. I highly recommend using these tools if you want to optimize your build times, because like as all performance tuning work, you will most certainly discover your intuitions about what causes bottleneck will probably prove wrong. 15:39 gargamel Awesome, witches got an upgrade. 15:40 erlehmann where 15:41 gargamel The witches mod. 15:43 gargamel !up 69.247.56.186:30003 15:43 MinetestBot 69.247.56.186:30003 is up (124ms) 15:48 gargamel No loot in the chests anymore. 15:48 gargamel But the house are better. 16:25 Andrew !up andrewyu.org:30000 16:25 MinetestBot andrewyu.org:30000 is up (19ms) (IPv4) 16:25 Andrew It tests minetest servers? Hmm 16:25 Andrew Wow, 19ms is quite good! 17:09 Andrew Hawk777~ 17:10 Andrew oops 17:13 Hawk777 haha np 17:45 independent56 !up 56i.duckdns.org:30000 17:45 MinetestBot 56i.duckdns.org:30000 is up (23ms) (IPv4) 17:45 independent56 !up 56i.duckdns.org 17:45 MinetestBot 56i.duckdns.org:30000 is up (22ms) (IPv4) 17:46 independent56 !up 56i.duckdns.org:80 17:46 MinetestBot 56i.duckdns.org:80 seems to be down (IPv4) 17:46 independent56 !up 56i.duckdns.org:22 17:46 MinetestBot 56i.duckdns.org:22 seems to be down (IPv4) 17:46 independent56 !up 56i.duckdns.org:21 17:46 independent56 !up 56i.duckdns.org:20 20:18 MTDiscord re: android 5.5 crashing, yes, it's definitively because of low memory. I tested a debug build on my nexus 7 which has only 1GB ram and it kills the minetest process in the middle of loading mineclone{2,5} 20:18 MTDiscord no stacktrace though, just "WIN DEATH: Window{364cef22 u0 net.minetest.minetest/net.minetest.minetest.GameActivity}" 20:19 kabou what changed so much between 5.4.1 and 5.5 that it now crashes? 20:20 MTDiscord well irrlichtmt I guess, but memory usage should have stayed the same 20:20 MTDiscord I don't actually know if mcl still OOMs on 5.4.2 on nexus 7, I should probably test that as well 20:21 kabou it used to work for me on aldi android 8 with 2GB 20:21 kabou maybe the build changed? 20:22 kabou or something related to lua? 20:30 MTDiscord ok so mineclone still OOMs on 5.4.2, nothing new for 5.5.0 20:30 MTDiscord I guess 2GB was enough for mcl on 5.4.2 but not 5.5.0 20:30 MTDiscord 1GB isn't very much when google trash takes up three quarters of it 20:42 kabou add a dash of qualcom crap here and there 21:37 definitelya Does anyone know why this page tries to access my localhost? Just curious. https://forum.minetest.net/viewtopic.php?f=9&t=13653 21:39 sfan5 the poster included an image from 127.0.0.1 in his post 21:39 definitelya Ok thanks!