Time Nick Message 08:47 jas_ while we're on the subject - #8935 - i'd love to see additional _mods_ shipped with minetest, too. this shows new players some examples of what's available, what minetest is capable of. 08:47 ShadowBot https://github.com/minetest/minetest/issues/8935 -- Bundle Pixture Revival game with next release 09:32 jas_ on the other hand - "why bundle mods, why not rely on contentdb?" - why ship with any game at all? 11:57 Fixer Still no text on signs but hacks in 2019 15:31 * rubenwardy clones pipeworks 15:36 rubenwardy VanessaE commits the cardinal sin - hiding if statements on one line 16:11 rubenwardy VanessaE: https://gitlab.com/VanessaE/pipeworks/merge_requests/12 16:11 rubenwardy !title 16:11 MinetestBot rubenwardy: WIP: Add support for recipes with groups to autocrafter (!12) · Merge Requests · Vanessa Dannenberg / pipeworks · GitLab 16:14 rubenwardy that took me 45 minutes 17:10 * VanessaE looks 17:11 VanessaE rubenwardy: don't like `if foo then blah end` one-liners eh? :) 17:11 rubenwardy well, I uncollapsed them to make it more readable to me 17:11 VanessaE I saw 17:11 rubenwardy I can put them back on a single line when I'm done with the PR 17:11 VanessaE no it's good 17:12 VanessaE I've tended to avoid them these days unless they're super short 17:12 VanessaE I don't get hung up on code style :) 17:12 VanessaE (hell, I'm the last person to look to for code style advice :P ) 17:14 Calinou waiting for Lua formatter™ 17:14 rubenwardy StandardLua 17:14 VanessaE MinetestLua :P 17:14 Calinou I've only found one active Lua formatter project, and it's written in TypeScript 17:14 VanessaE gotta have our 4-space hard tabs after all :) 17:14 rubenwardy not an actual standard, just confusingly named to confuse newbs into thinking it's the standard code style 17:26 sofar I tend to avoid 1-liners 17:26 sofar but I sure wish lua had ++ operators :) 17:30 rubenwardy same 17:30 rubenwardy although, -- are used for comments 17:31 rubenwardy but += would be nice at least 17:48 calcul0n yep,specially for python users who constantly forget that it's not in lua :p 17:50 VanessaE I do find myself wanting += or -= often, now that you mention it. 17:52 sfan5 I wish lua loops had continue 17:53 rubenwardy I wish lua had the null access operator 17:53 rubenwardy a?.b?.c instead of a and a.b and a.b.c 17:58 VanessaE RBA asked for a MT helper function for that 17:58 rubenwardy that would be slow 17:58 rubenwardy it needs to be a language feature 18:00 VanessaE so add a preprocessor of some kind 18:00 VanessaE in the lua code, write a?.b?.c and let the preprocessor translate it into a and a.b and a.b.c before passing it to lua[jit] 18:00 VanessaE surely that could work for things like += also 18:03 rubenwardy the benefit of a?.b?.c is also caching 18:03 rubenwardy say a was actually thing["asas"] 18:03 rubenwardy or a function call 18:03 rubenwardy and because you can't have locals in if statements, you'd need to do clever preprocessing to add locals before 18:10 VanessaE oh I dunno... other languages' preprocessors seem to do okay 18:10 VanessaE only prob of course, in MT's case, is that with enough such added features, it wouldn't be Lua anymore 18:18 sfan5 moonscript is a thing btw 18:18 sfan5 haven't ever looked at or used it though, just came to mind 22:49 VanessaE sfan5: I'm sorry, you have GOT to do something about the performance of copies where the destination overlaps the source. 22:49 VanessaE this is unusably slow. 22:49 sfan5 copy? or move? 22:49 VanessaE both. 22:50 VanessaE if source and destination regions overlap, //copy and //move should just save to a temp file and reload at the destination 22:51 sfan5 thats a last resort workaround, yes 22:52 VanessaE the slowness of //move forced me to restart the server I was working on, which in turn destroyed the area I was moving. 22:52 VanessaE and that was a Z+ move, which I waited for half an hour before rebooting 22:55 VanessaE (and now I'm trying to use //copy to repair the damage to a road grid around the area) 22:58 rdococ "a?" - you mean "(a or {})"? :P 22:59 VanessaE doing //save and //load manually is error-prone, as I'm sure you're aware (particularly figuring out where the destination needs to be) 22:59 sfan5 save and load should also not be any faster 22:59 sfan5 since they don't use vmanips either 22:59 VanessaE they are WAY faster. 22:59 rubenwardy rdococ: the ?. means access if and only if it is non-nill, overwise it returns nil 22:59 VanessaE as in seconds, compared to tens of minutes. 22:59 rubenwardy so a?.b is exactly equal to a and a.b 23:00 rdococ rubenwardy: or (a or {}).b 23:00 VanessaE sfan5: and I'm not even using MT schematics, just plain old //save and //load. 23:01 rubenwardy rdococ: functionally the same, but not actually the same 23:01 sfan5 //load uses add_node, only sets meta when there is some and doesn't remove existing nodes obviously 23:02 sfan5 //move uses set_node, always gets+sets meta, and calls remove_node 23:02 sfan5 it's a few more operations but it's not obvious to me what kills the performance here 23:02 VanessaE sfan5: I'm serious. I got more done in 5 minutes using //save, //set air, //allocate and //load than trying to just //move the region 23:02 VanessaE (which as I said, went for half an hour before I had to kill it) 23:03 sfan5 I know that it's slow 23:03 VanessaE nono I'm just trying to say that //save and //load aren't slow. 23:03 rdococ rubenwardy: functionally the same and actually the same are functionally the same 23:04 * rdococ feels like he said a dumb thing 23:04 rubenwardy ha 23:05 rdococ business as usual 23:06 sfan5 ok so set_node and add_node are equivalent, remove_node is just a set_node for "air" so nothing intensive, then it must be the metadata taking all the time 23:07 sfan5 it's strange though, the fast //copy and //move have a loop that copies metadata for every node, too 23:07 sfan5 ¯\_(ツ)_/¯ 23:11 VanessaE all I know is I've been waiting 40 minutes for `//copy z 40` to finish, with a volume of only about 1.5M nodes (roughly 80x500 horizontal size, 18m deep) 23:12 VanessaE er 20 mins 23:17 sfan5 hmm 23:18 sfan5 ok turns out copy doesn't actually need to be slow 23:19 VanessaE what's making it so slow? 23:19 sfan5 what I meant is: the fallback to the legacy code (for overlapping X+/Y+/Z+ copying) is not necessary at all 23:19 VanessaE oh. 23:21 sfan5 https://github.com/Uberi/Minetest-WorldEdit/commit/98690530456e8e8ec82fd3f1d3bbb2f812d7153c 23:21 sfan5 This doesn't apply to //move but I'll fix its performance at some point later 23:21 sfan5 ok but wait 23:21 sfan5 maybe it should copy the metadata in reverse 23:29 sfan5 there fixed 23:29 sfan5 this is why I shouldn't try to fix bugs late at night 23:30 VanessaE it happens. 23:30 VanessaE as for //move, shouldn't that just 'copy' the region, and then blank-out the leftovers? 23:31 sfan5 yes but that was too bothersome last time I touched the code so it only does that if it's not overlapping 23:31 VanessaE oh 23:32 sfan5 there is no inherent performance problem, I'm just too lazy 23:37 * VanessaE puts the new code into service 23:44 VanessaE oh that's MUCH better 23:52 rubenwardy VanessaE: are your unapproved releases meant to be deleted? 23:52 VanessaE yeah 23:54 rubenwardy doen 23:55 VanessaE thanks ;) 23:57 rdococ hmm 23:57 rdococ would it be possible to measure the memory usage of luacontroller mem by deserializing it, and comparing "collectgarbage("count")" from before and after the deserialization? 23:58 rdococ that way, you won't need to slowly crawl through all the data that the luacontroller wants to keep 23:58 rubenwardy there's so much I want to do but don't have the energy for 23:58 rubenwardy rdococ: you'd need to run it to determine the actual usage 23:59 rubenwardy because the usage depends on allocations in the function 23:59 rubenwardy oh, of the mem 23:59 rdococ well, I have some energy, but less intelligence :P 23:59 rubenwardy imposter syndrome is high with this one 23:59 rubenwardy or somethign 23:59 rdococ I still don't know how to use git properly