Time |
Nick |
Message |
04:00 |
|
MTDiscord joined #minetest-dev |
04:15 |
|
behalebabo joined #minetest-dev |
05:51 |
|
calcul0n joined #minetest-dev |
07:53 |
MTDiscord |
<luatic> erle: it is an extremely inefficient linear search in the end |
07:53 |
MTDiscord |
<luatic> crafting uses hashes to an extent but falls back to hashing by item count (which obviously collides) for groups or shapeless crafts |
07:55 |
erle |
luatic by item count LMAO |
07:56 |
MTDiscord |
<luatic> erle: well, the problem is pretty hard |
07:56 |
MTDiscord |
<luatic> I've tried to design an algo with worst-case sublinear complexity but so far I've failed |
07:56 |
MTDiscord |
<luatic> groups are what makes it hard |
07:56 |
MTDiscord |
<luatic> shapeless crafts without groups could be hashed properly by lexicographically sorting the item list before hashing |
07:56 |
|
ivanbu joined #minetest-dev |
07:56 |
erle |
yeah, but this one seems to have a pretty shitty best-case complexity |
07:57 |
erle |
like you don't get a much better case than a single item in a recipe |
07:57 |
erle |
it's not even a group |
07:59 |
MTDiscord |
<luatic> is it a shapeless recipe? |
07:59 |
MTDiscord |
<luatic> because otherwise a 1x1 item recipe should be properly hashed |
08:01 |
erle |
look at the code |
08:01 |
erle |
https://mister-muffin.de/p/MNvk.txt |
08:02 |
erle |
minetest.clear_craft({ type = "shapeless", recipe = { "benchmark_clear_craft:item_" .. tostring(i) } }) |
08:17 |
MTDiscord |
<luatic> ah yes, shapeless, I knew it |
08:17 |
MTDiscord |
<luatic> should I try to optimize the shapeless case the way I have described? |
08:20 |
|
appguru joined #minetest-dev |
08:24 |
erle |
luatic is there any downside to it? |
08:27 |
MTDiscord |
<luatic> No, not really |
08:28 |
MTDiscord |
<luatic> but if I were to fix it I'd want to fix all cases |
08:28 |
MTDiscord |
<luatic> I suspect the fix wouldn't be of much use without a fix for groups because many crafts use groups |
08:30 |
erle |
in this case, the submitter of the bug report complained about it taking a long time for a single item |
08:30 |
erle |
and given it took over 20 seconds on both my computer and the one of Zughy[m] i have a suspicion that a partial optimization does some good |
08:31 |
erle |
luatic, maybe a stupid question … but there is only a limited amount of recipes for shapeless. up to what boundary would it make sense to just hash all of them? |
08:32 |
MTDiscord |
<luatic> huh? you mean like expanding shapeless crafts with groups to crafts with all items? |
08:45 |
erle |
i am pretty sure it is a horrible idea memory wise, but if you have a good hash and a hashmap and want to get to performance land … |
08:46 |
erle |
the question is, what is the boundary where it could still make sense? |
08:46 |
erle |
like, obviously it would make sense for the “1 item” case |
08:46 |
erle |
you'd only be having 9 times the members of the group recipes |
08:46 |
erle |
in the hashmap |
09:32 |
erle |
luatic i have added my benchmark code, please add your analysis as well? https://github.com/minetest/minetest/issues/5790#issuecomment-1125846889 |
09:32 |
|
HuguesRoss joined #minetest-dev |
10:10 |
erle |
HuguesRoss could you step through this with a debugger? https://github.com/minetest/minetest/issues/12327 |
10:10 |
HuguesRoss |
Sure, I can check that today. |
10:11 |
erle |
in particular, i do not understand where the 4096 number comes from |
11:20 |
|
Fixer joined #minetest-dev |
11:37 |
|
panwolfram_ joined #minetest-dev |
11:50 |
|
panwolfram joined #minetest-dev |
12:23 |
MTDiscord |
<savilli> 65536 / 16 = 4096, not a big mystery |
12:24 |
MTDiscord |
<savilli> it just starts emerge from -32768 to 32767 |
12:44 |
erle |
emerge ALL the things |
12:49 |
MTDiscord |
<savilli> so what? |
12:50 |
|
Wuzzy joined #minetest-dev |
13:03 |
|
proller joined #minetest-dev |
14:43 |
sfan5 |
reminder that 5.5.1 is supposed to happen this weekend |
14:56 |
MTDiscord |
<LandarVargan> Does it include the auth fixes? |
14:56 |
sfan5 |
yes |
15:07 |
|
BuckarooBanzai joined #minetest-dev |
15:12 |
MTDiscord |
<ROllerozxa> oh, 5.5.1 is becoming an actual release? for clients too? |
15:15 |
|
BuckarooBanzai joined #minetest-dev |
15:19 |
sfan5 |
kinda hard to make a server-only release don't you think? |
15:23 |
MTDiscord |
<luatic> Can MTG 5.5.1 be released as well then? |
15:24 |
sfan5 |
yes |
15:26 |
MTDiscord |
<luatic> I suggest cherry-picking edd033b, 638099c, a6f3b89 and 584a6a2 (the last one is the most important) |
15:28 |
sfan5 |
if you want to help checkout stable-5, do just that (ideally keep them in chronological order) and push the result to a new backport-5 branch |
15:28 |
MTDiscord |
<luatic> Alright |
15:46 |
|
Fixer joined #minetest-dev |
16:18 |
Wuzzy |
#12329 |
16:18 |
ShadowBot |
https://github.com/minetest/minetest/issues/12329 -- Fix no_texture.png being shown (instead of unknown_node.png) for unknown nodes w/ content ID < 125 by Wuzzy2 |
16:20 |
Wuzzy |
that was an ... interesting bug. happens only under special, non-obvious conditions. |
16:20 |
Wuzzy |
Since DevTest has literally hundreds of nodes, its no suprise its not easy reproducing it under DevTest :) |
16:31 |
MTDiscord |
<luatic> Wuzzy: Could use a ternary to tidy it up |
18:03 |
|
erle joined #minetest-dev |
18:21 |
|
proller joined #minetest-dev |
18:42 |
|
appguru joined #minetest-dev |
18:50 |
appguru |
Can the issue #12330 be transferred to the mt-docs repo? |
18:50 |
ShadowBot |
https://github.com/minetest/minetest/issues/12330 -- Exploring applications for “Async environment” |
18:50 |
sfan5 |
isn't it asking concrete questions |
18:57 |
appguru |
hmm indeed |
19:02 |
erle |
i think it would be better in the forums actually |
21:42 |
erle |
is anyone aware of a recent stall during connection, but only to some servers? like, when trying to connect to oysterity server minetest just stops doing things at 100% |
21:42 |
erle |
100% media load that is |
21:42 |
erle |
and i wonder if it is maybe a setting or so? |
22:34 |
|
panwolfram joined #minetest-dev |
22:57 |
|
proller joined #minetest-dev |
23:03 |
|
AliasStillTaken joined #minetest-dev |