Time |
Nick |
Message |
06:24 |
|
CWz joined #minetest-hub |
07:48 |
|
twoelk joined #minetest-hub |
08:36 |
|
ShadowNinja joined #minetest-hub |
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? |
10:26 |
|
calcul0n joined #minetest-hub |
10:31 |
|
Fixer joined #minetest-hub |
10:50 |
|
DS-minetest joined #minetest-hub |
11:57 |
Fixer |
Still no text on signs but hacks in 2019 |
12:01 |
|
tomraceror joined #minetest-hub |
12:40 |
|
HDMI_STECKDOSE joined #minetest-hub |
14:44 |
|
Fixer_ joined #minetest-hub |
14:48 |
|
NathanS21 joined #minetest-hub |
15:05 |
|
Fixer joined #minetest-hub |
15:06 |
|
HDMI_STECKDOSE joined #minetest-hub |
15:31 |
* rubenwardy |
clones pipeworks |
15:36 |
rubenwardy |
VanessaE commits the cardinal sin - hiding if statements on one line |
15:44 |
|
HDMI_STECKDOSE joined #minetest-hub |
15:52 |
|
CWz joined #minetest-hub |
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 |
16:20 |
|
NathanS21 joined #minetest-hub |
16:31 |
|
Krock joined #minetest-hub |
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 |
21:08 |
|
twoelk left #minetest-hub |
22:15 |
|
Cas127 joined #minetest-hub |
22:48 |
|
fluxflux joined #minetest-hub |
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 |