Time Nick Message 00:40 hmmmm wooh! 00:40 hmmmm minetest is at 4000 commits 00:47 hmmmm looking for some feedback from others on the design of NodeResolver 00:48 hmmmm how can I make this a cancel-safe queue without adding lots of boilerplate code to object destructors? 04:49 paramat hmmmm i have a request for a feature before the freeze, if possible could you make biome heat and humidity noise parameters settable using .conf? 04:50 hmmmm erm.. sure 04:51 hmmmm i thought you had a patch that does that already 04:51 hmmmm so did you want it per-biome or global? 04:51 hmmmm global would definitely be cleaner 04:51 hmmmm either way, you can set noiseparams through mods 04:53 paramat well i tried to code it but had no idea what i was doing so trashed it 04:55 hmmmm actually i wonder if anybody's actually ever used minetest.set_noiseparam_defaults() 04:56 paramat 'per biome'? you mean per mapgen? i think global is better 04:56 hmmmm per-mapgen, yeah 04:56 paramat that's so new i haven't used that yet 04:56 hmmmm no, that's pretty old 04:56 hmmmm it's been there for a couple versions 04:56 paramat oh heh 04:57 hmmmm that was my original "solution" to the problem of having messy noiseparams in config files 04:57 hmmmm just have a default mod that'll set them! 04:57 paramat nice 04:58 paramat so global yes, to set the heat/humidity params currently found at the top of mg_biome.cpp 04:58 paramat thanks 04:59 hmmmm the issue with this is the issue with all mapgen params 04:59 hmmmm they need to be stored in map_meta.txt too so there are no inconsistencies if they get changed 05:23 hmmmm err.. okay.. lua is now consistently crashing a couple of seconds into a game 05:24 hmmmm only on one specific world 05:25 paramat :/ my request broke it 05:25 paramat i guess heat/humidity noises should be settable in .conf because the other mapgen noises are, for consistency 05:28 hmmmm completely flubbed 05:28 hmmmm i have no idea 05:35 hmmmm welp 05:35 hmmmm i really goofed up the last commit i did, didn't 05:35 hmmmm i 05:36 hmmmm having lacunarity greater than 2 creates memory corruption because i forgot something really important 05:38 hmmmm https://github.com/minetest/minetest/commit/29b413b376d42c27bf1f7065c9f7c850b61f3f24 05:40 paramat thanks, now i can study where i went wrong 05:42 paramat i can test this in 12hrs or so 05:43 hmmmm hmm 05:44 paramat today (9th) is possibly last day before freeze 05:44 kahrl crap 05:44 paramat i can't imagine what lacunarity broke.. 05:45 kahrl I procrastinated and now I have so much stuff to do :( 05:45 hmmmm noise buffer size 05:45 hmmmm the good thing about minetest is that when you're corrupting memory, you notice really fast 06:38 sfan5 https://github.com/minetest/minetest/pull/1925 06:38 sfan5 wat 06:39 sfan5 did realbadangel remove a feature? 06:39 VanessaE it's not a feature, it's a bug :) 07:45 Zeno` #1931 07:45 ShadowBot https://github.com/minetest/minetest/issues/1931 -- Increase performance of getLight() by approx. at least 100% by Zeno- 07:47 hmmmm hmm. zeno`, did inlining that function not help much? 07:47 Zeno` which function? 07:48 hmmmm getLightNoChecks 07:48 Zeno` CNodeDefManager is private 07:50 Zeno` Although I did make it non-private and inlined it without much difference. The major increase comes from avoiding two extra calls to ndef->get(n); 07:54 Zeno` So even with inlining the const ContentFeatures &f = nodemgr->get(*this); in the original getLight() is still there and would still require another function 07:56 Zeno` (without updating another 20-30 calls to that function that do not impact performance at all) 09:45 Zeno` Is #1873 ok to merge now SN agrees? 09:45 ShadowBot https://github.com/minetest/minetest/issues/1873 -- Temporary fix for irrlicht bug that cause MT not going to be compiled on BSD-like by neoascetic 09:45 Zeno` I may adjust/expand the comment on line 23 as I merge 09:45 Zeno` (if I get agreement) 10:21 Zeno` Since it's: a simple fix; kahrl and I spoke about it last night; and SN now agrees with the current patch I'lll mger 1873 in the next 30 minutes or so 10:43 Zeno` merging 10:55 Zeno` +1 for #1921 10:55 ShadowBot https://github.com/minetest/minetest/issues/1921 -- Ignore .name directories and files by SmallJoker 11:04 Zeno` kahrl, is there a solution for #1860 ? I don't really understand your comment 11:04 ShadowBot https://github.com/minetest/minetest/issues/1860 -- Wield item is always fully bright 13:08 kahrl Zeno`: nope 13:08 kahrl not yet at least 13:09 kahrl the problem is that I enabled EMF_LIGHTING on the wield mesh to make it look a bit nicer, which worked fine until RBA enabled the shaders for it 13:09 Zeno` hmm 13:12 Zeno` is there an easy fix? 13:18 kahrl I could just disable EMF_LIGHTING 13:18 Zeno` would that make it look horrible? 13:18 kahrl not really 13:19 kahrl just like it looks right now with shaders, but not always fully bright 13:20 Zeno` what's the main issue then? 13:20 kahrl I was waiting for RBA to comment 13:20 Zeno` ahh ok 13:20 Zeno` fair enough 13:23 Zeno` I understand now; sometimes I'm a bit slow :) 13:24 kahrl it does look better with lighting imo but since you don't look at your wield that often, it's fairly subtle 13:24 Zeno` well to tell you the truth I didn't even notice until the issue was opened 13:25 Zeno` now I notice it all the time, though 13:25 Zeno` heh 13:59 Zeno` kahrl, #9131 13:59 ShadowBot Zeno`: Error: Delemiter not found in "HTTP Error 404: Not Found" 13:59 Zeno` err #1931 13:59 ShadowBot https://github.com/minetest/minetest/issues/1931 -- Increase performance of getLight() by at least 100% by Zeno- 14:01 kahrl does a performance increase by 100% scale the time needed by 0.5 or 0? 14:01 kahrl :P 14:01 Zeno` hmm.. Self cost went from 3.11% (relative to whole program) to 0.00% (relative to whole program) 14:02 Zeno` so it's probably 3x faster, not 2x faster but I didn't want to exaggerate 14:02 kahrl nice 14:05 kahrl I think there needs to be another @pre for getLightNoChecks: f == ndef->get(getContent()) 14:05 kahrl or something like that 14:05 kahrl with another & but you know what I mean 14:05 Zeno` let me look 14:06 kahrl maybe also write a comment in the .h that explains what it does (in particular, what checks are skipped) and that it's meant for performance critical code 14:09 kahrl given the simplicity of this method I'd also move it fully to the .h so it can be inlined 14:10 kahrl oh I see why you didn't do that 14:10 kahrl because then you'd have to #include "nodedef.h" in mapnode.h 14:15 kahrl are the VoxelManipulator changes meant to be included in this commit? 14:17 Zeno` errr. maybe not (but maybe). I'll have to check that 14:17 Zeno` * This function differs from getLight(enum LightBank bank, INodeDefManager *nodemgr) 14:17 Zeno` * in in that the ContentFeatures of the node in question are retrived by 14:17 Zeno` * the function itself. Thus, if you have already called nodemgr->get() to 14:17 Zeno` * get the ContentFeatures you pass it to this function instead of this 14:17 Zeno` * function getting ContentFeatures itself. Since INodeDefManager::get() 14:17 Zeno` * is relatively expensive this can lead to significant performance 14:17 Zeno` * improvements in some situations. Only call this function iff you have 14:17 Zeno` * already retrieved the ContentFeatures by calling INodeDefManager::get() 14:17 Zeno` * for the node you're working with and the following pre-conditions 14:17 Zeno` * listed below are true. 14:18 kahrl staaahp 14:19 kahrl yeah that seems good 14:21 jin_xi Only call this function iff... -f 14:21 Zeno` well iff is if and only if, but I'll change that 14:22 jin_xi oh never seen that 14:22 Zeno` sorry for flooding channel. Paste failure 14:22 Zeno` kahrl, the VoxelManipulator changes are only for getSmoothLightCombined() 14:23 Zeno` so it's only indirectly related and doesn't increase performance a lot anyway 14:24 Zeno` I can remove them 14:24 kahrl I don't think they would affect getSmoothLightCombined() in any way 14:24 kahrl since it doesn't clear or delete a vmanip 14:25 n4x iff is a common thing, I wouldn't change it 14:25 kahrl n4x: but "only ... iff" doesn't really make sense 14:25 kahrl "only if and only if"? 14:25 n4x oh well, didn't see the only :P 14:27 Zeno` :) 14:27 Zeno` I've changed it 14:30 kahrl I can't tell how safe making the vmanip destructor and clear() non-virtual is, but IIRC they are used polymorphically in a couple places 14:30 kahrl so I wouldn't do it 14:31 Zeno` yep 14:36 Zeno` ok, changes pushed 14:37 kahrl that looks good 14:38 kahrl retrived -> retrieved 14:38 Zeno` oops 14:38 Zeno` fixing (thanks) 14:39 kahrl I agree with merging it 14:39 Zeno` ok, thanks. I'll wait for travis. Just pushed the version with typo fixed 14:40 kahrl oh, also s/in in/in/ 14:41 kahrl and s/are/are not/ in the same line (197) 15:02 Zeno` merged 15:13 Zeno` Does anyone know if there is a purpose for: https://github.com/minetest/minetest/blob/master/src/nodedef.cpp#L738 15:16 Zeno` I've never seen that before but maybe it's something that does something that I'm not aware of 15:17 celeron55 ? 15:17 celeron55 it's standard C++ code, what's the issue with it 15:17 Zeno` celeron55, default: is at the start of the switch and falls through to the cases... I'm not sure of the purpose 15:17 celeron55 that makes it handle unknown values as NDT_NORMAL 15:18 celeron55 for example for the purpose of forward compatibility 15:18 Zeno` ahh, ok 15:19 celeron55 enums in C and C++ aren't restricted to the values known at compile time 15:21 Zeno` Yep, I know. I've just never seen default: used in that way before. I guess it makes sense now you've explained it 16:10 Zeno` is java worth learning? 16:10 Zeno` ugh, ignore that (wrong channel) 16:10 toshiba in a way yes 16:25 Zeno` Is #1921 ok? 16:25 ShadowBot https://github.com/minetest/minetest/issues/1921 -- Ignore .name directories and files by SmallJoker 16:27 PilzAdam Zeno`, if it works 16:28 Zeno` well it works for me 16:28 Zeno` and it works for Krock 16:29 Zeno` and I assume that since kahrl rewrote GetDirListing() it works for him as well 16:32 Zeno` does it work for you, PilzAdam? 16:32 PilzAdam haven't tested it 16:33 hmmmm hrmm 16:34 PilzAdam sfan5, https://github.com/minetest/minetest_game/pull/368 the textures are changed; that was the only thing that needed to be fixed for this; nore already agreed 16:35 hmmmm I don't like the semantics of settings value/group 16:35 hmmmm i think a setting should have one or the other 16:35 Zeno` hmmmm, after you hrmm can you check 1921 as well please? 16:38 sfan5 PilzAdam: can you merge it? 16:38 PilzAdam sure 16:38 hmmmm wow 16:38 kilbith PilzAdam: in which way the header is used by the engine? 16:39 hmmmm GetDirListing is a giant clusterfuck 16:39 PilzAdam kilbith, textures/base/pack/menu_header.png is a copy of the one used in minetest_game 16:39 PilzAdam sfan5, does this imply that I should merge it now? 16:39 sfan5 PilzAdam: yes 16:39 PilzAdam :D 16:40 Zeno` hmmmm, now or then? 16:40 hmmmm then especially 16:40 kilbith oh yes, for minetest_minimal 16:40 hmmmm now, i suppose you could remove that extra indentation in the else block by bailing out early in the invalid handle value case 16:41 hmmmm otherwise it'd be as good as it can be i guess 16:41 PilzAdam kilbith, no, it's used for all other menu tabs except singleplayer 16:41 PilzAdam games only provide the header for the singleplayer tab 16:41 PilzAdam (or if no game is selected) 16:41 PilzAdam sfan5, do you have time to look at other pull requests, too? 16:41 kilbith beside that, i'd be agree for giving a voice to engine devs in the game's decision process 16:42 hmmmm guys 16:42 hmmmm this goes for both Lua and C++ alike 16:43 hmmmm if you have a function where there's an error and you don't execute the rest of the body, return from the function rather than encase the rest of the body in an else block (else not an error) 16:43 hmmmm i keep seeing code like 16:43 Zeno` hmmmm, I don't think it's worth quibbling about early bail outs and reducing levels and nesting right at this moment. It's better than before and fixes the Windows issue. 16:44 Zeno` There are functions in MT that have 8 or more levels of nesting. It will take years to address them all 16:44 hmmmm result = thingie(); if (result == ERROR) { print out error thing here } else { donextthingie(); result2 = foobar(); if (result2 == ERROR) { handle other error } else { do actual work here } } 16:44 hmmmm and it drives me crazy 16:44 hmmmm this goes for people writing new code though 16:44 Zeno` Yeah, sure :) 16:44 hmmmm it's very messy 16:44 hmmmm and people keep doing it for some reason 16:44 Zeno` I agree with that 16:45 Zeno` But, we're going to block something because it annoys you? ;) 16:45 PilzAdam hmmmm, add it to code style guidelines then 16:45 hmmmm no.... 16:45 hmmmm 1921 is fine 16:45 PilzAdam I have seen other code style guidelines that allow only 1 return per function 16:45 Zeno` ok, will merge then 16:46 hmmmm yeah, i know what you mean. 16:46 hmmmm i think that's GNU standards or something 16:46 hmmmm single-point-of-return is just stupid in concept 16:46 hmmmm it makes things unnecessarily convoluted 16:47 sfan5 PilzAdam: no 16:47 PilzAdam :-/ 16:47 PilzAdam what about friday afternoon? or will there be a feature freeze then? 16:47 hmmmm sure 16:48 hmmmm i've got stuff to do within that time 16:48 VanessaE the last suggestion I saw was actually for tomorrow as I recall 16:48 VanessaE (i.e. the 10th) 16:48 Zeno` I'll leave it as 2 commits as well 16:48 VanessaE that gives ~2 weeks to get the release out the door, since the target was Christmas. 16:51 Zeno` 1921 merged 16:52 PilzAdam filesys.cpp:217:22: warning: comparison with string literal results in unspecified behaviour [-Waddress] 16:53 Zeno` ugh 16:55 hmmmm 5 minute rule 16:55 PilzAdam I already pulled, but I know how to reset 16:56 hmmmm nah 16:56 hmmmm leave it there 16:56 hmmmm fix that problem in a separate commit since it's an issue with the unix version 16:56 PilzAdam also it's 10 minutes 16:56 hmmmm did GetDirListing ever work...? 16:56 hmmmm this is so FUBAR 16:58 hmmmm move the check for "." or ".." to underneath node.name = dirp->d_name and then compare node.name with "." and ".." instead of dirp->d_name 16:58 hmmmm also remove the "lol so epick failur" comment... it kind of strikes me as immature 16:59 Zeno` anyway rewrote history 17:00 Zeno` That warning was not a UNIX version issue 17:00 hmmmm ??? 17:00 hmmmm line 217? 17:00 Zeno` yes 17:00 hmmmm "#else // POSIX 17:01 hmmmm that's clearly the UNIX version of the same function 17:01 Zeno` no, it was comparing the addresses of two string literals 17:01 hmmmm what? 17:01 Zeno` sorry, one sting literal and an array 17:01 hmmmm there are two versions of fs::getDirListing 17:01 hmmmm one for windows and one for unix 17:02 hmmmm the one kahrl rewrote is the windows one, unrelated to the issue mentioned in the warning 17:02 Zeno` dirp->d_name is a char* 17:02 hmmmm yeah 17:02 hmmmm that doesn't make things okay 17:02 Zeno` you can't do if (dirp->d_name == "..") { ... } 17:03 hmmmm I never said you could 17:03 Zeno` fix that problem in a separate commit since it's an issue with the unix version <--- I must be misunderstanding what that meant then 17:04 hmmmm when pilzadam saw the warning produced by that file, i'm assuming he thought that it was caused by the most recent changes, when in fact it was not 17:04 hmmmm this is why it should be done in a separate commit 17:10 Zeno` Can I revert both of those commits or is it too late? 17:10 PilzAdam too late 17:10 hmmmm what's wrong with them though 17:10 Zeno` ok 17:11 Zeno` Maybe nothing. It's probably better than before 17:12 * Zeno` makes note to look at filesys.cpp more closely another time 17:12 Zeno` maybe tomorrow, maybe next year 17:12 Zeno` :) 17:19 hmmmm i dunno 17:19 hmmmm so guys, before a new version hits and we have to support legacy things 17:19 hmmmm should values and groups in Settings be mutually exclusive? 17:21 Zeno` the Windows build is fine by the looks of it 17:21 Zeno` I cannot test unfortunately 18:17 rubenwardy It makes sense for luaapi to be md. 1) You can link to lua api on the internet, and not worry about lines changing. 2) You could have links to other sections in the documentation. 18:17 rubenwardy As for Windows, 1) Add note to readme.txt 2) move luaapi.md to .txt 18:17 rubenwardy As a batch script 18:17 rubenwardy / shell 18:18 sfan5 a batch script for what? 18:18 rubenwardy move luaapi.md to .txt 18:18 rubenwardy Also, table of contents 18:20 Krock Hi 18:20 rubenwardy Also, you could output a github page for the documentation - but that's less important 18:21 Calinou and .md is way prettier than .txt! 18:23 rubenwardy I'd be willing to convert it and clean it 18:23 Calinou me too, we could set up an Etherpad for this 18:23 Krock Minetest's commit count is over 4k! 18:23 Calinou eg. http://public.pad.fsfe.org/p/minetest-lua-api 18:24 Calinou paste the whole lua_api.txt there 18:24 Calinou then we edit it 18:24 rubenwardy Is there a markdown rendering thing so I can test it? 18:25 rubenwardy done 18:25 PenguinDad Krock: come back when it's over 9000 :P 18:25 Calinou no there isn't :/ 18:26 Calinou Atom provides live .md preview if you need it 18:26 Krock PenguinDad, #freeminr .. 6k commits 18:26 rubenwardy ok 18:27 rubenwardy Lag 18:27 PenguinDad Krock: we can safely ignore that project 18:34 rubenwardy Calinou: ## or ========== for headers? 18:34 rubenwardy I suggest ======== 18:35 Calinou ====== 18:35 Calinou use that 18:35 Calinou (I don't know about how many of them) 18:35 Calinou probably 8 to 12 18:37 hmmmm so guys? 18:38 hmmmm meh 18:38 hmmmm no sense in asking people 18:38 rubenwardy I use enough to match the fixed widthness of the title text 18:38 rubenwardy Also, ```lua or ```Lua># 18:40 Calinou I think GitHub uses ```Lua 18:45 PilzAdam hmmmm, if you want more responses maybe create a github issue? 18:50 hmmmm nah, i can't think of any arguments against changing it 18:51 hmmmm makes the code simpler and therefore less error-prone, makes semantics easier to guess, behavior is more consistent 18:53 kilbith kahrl: https://mediacru.sh/wWET6VHP3IYJ 18:53 kilbith the 'address/port/name/pwd' ought be placed in the fields and disappears on clicking (such as the HTML form value='') 18:55 rubenwardy https://github.com/rubenwardy/mtluaapi/blob/master/lua_api.md 18:59 sfan5 kilbith: nice sketch butt the field for the description is likely too small 18:59 sfan5 s/butt/but/ 19:02 kaeza put them on separate lines. making the server list shorter is not a problem 19:06 hmmmm also i noticed all my wacky minetest inventions have a "flags" field and never any boolean fields like other structures prefer 19:06 hmmmm the boolean fields are a user's abstraction and I should be using those 19:07 hmmmm ugh i see the err in all my ways far too late 19:08 kilbith sfan5: the proportions are not respected in that sketch 19:16 Krock kilbith, the idea is like mine but I failed at the formspec size 21:38 hmmmm jesus christ 21:38 hmmmm -O1 optimizations made me waste like an hour boggling my mind on how something trivial couldn't work 21:39 exio4 what happened? just curious 21:39 hmmmm tracking down Assertion failed: (mutex_lock_retval == 0), function Lock, file /home/ryan/minetest/src/jthread/pthread/jmutex.cpp, line 47. 21:39 hmmmm turns out it actually happened like... 30 lines later in the source file 21:40 hmmmm just a use-after-free 21:43 exio4 isn't that reason that people say that debugging with optimizations is a pain? 21:44 hmmmm didn't ever think it'd be that ridiculous 22:13 paramat sfan5, PilzAdam, looks like i missed nore but https://github.com/minetest/minetest_game/pull/366 (lua pinetree gen, sapling growth) needs to be merged very soon as it's delaying pull 376 22:14 paramat AFAIK nore is okay with it but requested roots removed, now done 22:46 paramat i was too late again, the nightshift has started :/