Time |
Nick |
Message |
03:21 |
|
fluxionary joined #minetest-dev |
04:00 |
|
MTDiscord joined #minetest-dev |
06:12 |
|
calcul0n joined #minetest-dev |
08:01 |
MTDiscord |
<andrey2470t> Well, x2048 left the community, so he won't be able to do reviews in the nearest time. My PR doesn't require high lore/skills to review, it is limited to the irrlicht stuff like setting material properties, drawing primitives list and that's all |
08:35 |
|
appguru joined #minetest-dev |
08:36 |
|
Noisytoot joined #minetest-dev |
09:13 |
MTDiscord |
<maintainer_> It's sad that x2048 left, he did a lot of cool things.... I'll thank him as a regular player to the developer |
10:25 |
|
Farooq joined #minetest-dev |
11:18 |
|
MTDiscord joined #minetest-dev |
11:27 |
|
calcul0n_ joined #minetest-dev |
11:32 |
sfan5 |
merging #13775, #13686, #13792 in 12m |
11:32 |
ShadowBot |
https://github.com/minetest/minetest/issues/13775 -- Changed all core::unicode::ustring to std::u32string by calebabutler |
11:32 |
ShadowBot |
https://github.com/minetest/minetest/issues/13686 -- Allow setting custom third person front view camera offset by grorp |
11:32 |
ShadowBot |
https://github.com/minetest/minetest/issues/13792 -- Document air_equivalent as deprecated by sfan5 |
11:38 |
sfan5 |
it just occurred to me that we can now start using std::string_view |
12:12 |
erle |
sfan5 what should be used instead of air_equivalent then? |
12:21 |
|
Farooq joined #minetest-dev |
12:31 |
MTDiscord |
<.niklp> nothing, air_equivalent doesn't do anything. |
12:34 |
erle |
it does |
12:34 |
erle |
the engine no longer uses it, but mods do: https://web.archive.org/web/20230911164208if_/https://content.minetest.net/zipgrep/501df1d6-4355-4fd8-8afb-947ea023aa6e/ |
12:34 |
erle |
and removing it makes it falsy for air and ignore |
12:35 |
erle |
since some mods only set it and others only check it, there should be a clear “do this instead” |
12:35 |
erle |
and AFAIK it was not found last time this was discussed, but i may have missed something about it |
12:35 |
MTDiscord |
<.niklp> The param is ignored by the engine for years now, where's the problem?... |
12:35 |
erle |
it is because mods assume it is truthy for “stuff like air” and check for it, see that link |
12:36 |
ROllerozxa |
it may be ignored by the engine, but games and mods rely on it |
12:36 |
erle |
i suggest to ask one of the authors of those mods what they would want instead. many might not know. |
12:36 |
MTDiscord |
<.niklp> there should be a clear “do this instead” - then sit down, open your ide, text editor or whatever and implement it instead of talking |
12:38 |
erle |
okay, look: removing it would just break something |
12:38 |
erle |
i hate this idea of deprecating stuff and not actually knowing what it is useful for. if people are using it and they are still around, they *probably* know. |
12:39 |
erle |
but i do not |
12:39 |
erle |
and because none of my mods uses air_equivalent, i can not actually sit down and implement “do this instead” |
12:39 |
MTDiscord |
<grorp> I think you should use a custom node group instead of air_equivalent |
12:40 |
erle |
grorp then that should be in the documentation i guess |
12:40 |
MTDiscord |
<grorp> You can add it to builtin air and ignore using minetest.override_item |
12:41 |
MTDiscord |
<grorp> But there may be other alternatives as well, I don't know |
12:41 |
erle |
yeah and that's the point |
12:41 |
erle |
the people who do know (mod authors) have not commented on this as far as i can tell |
12:41 |
erle |
except for warr1024 |
12:42 |
erle |
grorp i suggest to add your opinion to https://github.com/minetest/minetest/issues/13722 |
12:42 |
MTDiscord |
<grorp> I shouldn't have responded at all 🤦 |
12:42 |
erle |
can i add it? |
12:43 |
erle |
i mean, am i allowed to just copy your stuff and credit you |
12:50 |
MTDiscord |
<grorp> x2048: thank you, and good luck for the future |
12:51 |
|
shangul joined #minetest-dev |
13:04 |
|
grorp joined #minetest-dev |
13:06 |
[MTMatrix] |
<localhost> minetest.after have limit up to 65000 timers? |
13:08 |
|
habeangur joined #minetest-dev |
13:09 |
erle |
localhost, whatever you do, don't lol |
13:10 |
erle |
i suggest to explain the problem in #minetest or the forums and see if there is another way than tens of thousands of timers |
13:10 |
[MTMatrix] |
<localhost> hm, okay, thanks. Where i can see queue timer manager in engine? |
13:11 |
MTDiscord |
<luatic> @grorp shouldn't the engine set a group on air to establish a convention? |
13:13 |
erle |
and on ignore |
13:13 |
erle |
luatic it would just be removed anyway as soon as someone™ finds out the engine does not use it internally ;) |
13:14 |
erle |
luatic i suggest to post to #13722 grorp was already “i shouldn't have responded at all” |
13:15 |
ShadowBot |
https://github.com/minetest/minetest/issues/13722 -- `air_equivalent` is undocumented |
13:15 |
|
grorp joined #minetest-dev |
13:19 |
grorp |
luatic: you could also consider that a game responsibility |
13:26 |
MTDiscord |
<luatic> grorp: but then we will get a worse alternative to air_equivalent, as each game/mod comes up with its own name for the same thing.. air is an engine responsibility, and air_equivalent used to be an engine responsibility; at the very least I would suggest a certain name for this group in the docs as a convention, even if the engine doesn't enforce / use / set it at all. |
14:11 |
erle |
luatic good luck convincing people, but given that a followup to people agreeing to not removing stuff for reasons has been “deprecate it later, without providing a suffcient replacement”, I doubt you can find a permanent solution here without addressing the underlying issue. |
14:20 |
erle |
which, as i see it, is something “API consumers have no say, as API devs know best”. you can see where this goes from other projects, e.g. GNOME/MATE/Cinnamon, ffmpeg/libav or MineClone2/Mineclonia – it does not make those projects fail, it just alienates contributors to the ecosystem. |
14:26 |
rubenwardy |
there is no sufficient replacement as `air_equivalent` has insufficient meaning |
14:27 |
erle |
rubenwardy then what should developers do to get the previous behaviour? |
14:27 |
rubenwardy |
depends based on what they actually want to do |
14:28 |
erle |
that answer does not contain a context-free or regular suggestion for what to do |
14:29 |
erle |
i personally would do what html5lib did: figure out how the thing is used, then see if this is useful or can be replaced |
14:29 |
erle |
i would not do what imagemagick did: respond to everyone with “we never defined it that way, the user is wrong” |
14:30 |
erle |
anyway, i don't see the use in deprecating things that are a) in use b) have no sufficient replacement. it certainly does not save work to do so. |
14:31 |
erle |
i guess war1024 will have to figure it out (being the user that uses that thing the most so far) |
14:32 |
erle |
and a lot of other stuff will just subtly break (unless some joker just writes a mod that sets this property again lol) |
14:33 |
erle |
rubenwardy what advantage do you see here actually? like, is “removing things that were never defined properly” a goal in itself that ranks higher than compat? |
14:33 |
erle |
i mean, that would be a consistent opinion |
14:35 |
jonadab |
The most important feature of air, and the most important way something could be equivalent to it, is buildable_to |
14:37 |
jonadab |
Second most important is I guess probably transparency? |
14:37 |
ROllerozxa |
vegetation could be buildable_to |
14:37 |
jonadab |
Well yes, it often is. |
14:37 |
erle |
do not regard the name, think about how it is used |
14:37 |
erle |
in mods |
14:37 |
erle |
jonadab remember that ROllerozxa did a cdb search for this |
14:38 |
jonadab |
I don't think I've ever seen air_equivalent used in a mod. Perhaps I'm not looking at the right mods? |
14:38 |
erle |
you have not looked at the cdb search probably |
14:38 |
ROllerozxa |
https://web.archive.org/web/20230911164208if_/https://content.minetest.net/zipgrep/501df1d6-4355-4fd8-8afb-947ea023aa6e/ |
14:38 |
ROllerozxa |
nodecore uses air_equivalent, among others |
14:39 |
erle |
for me, the first question is “why would anyone set this”. some mods have comments that indicate they cargo-culted it. others use it deliberately, as they indeed check for it. |
14:39 |
jonadab |
Ah. |
14:39 |
jonadab |
I see. |
14:39 |
erle |
the second question is “if you check for this, what would you expect” and the simplest answer that has no meaning, but is consistent with past behaviour is “i would expect this to be truthy for air, ignore and all nodes that had air_equivalent set by mods” |
14:40 |
jonadab |
Nodecore is a replacement game, so it theoretically doesn't care what MTG does. |
14:40 |
erle |
this does not give you anything meaningful, but it does give you a pattern for what a solution would have to do |
14:40 |
erle |
i.e. if you currently have a mod checking for air_equivalent, in the future you have to check for air_equivalent and air and ignore |
14:40 |
erle |
otherwise it will break with these two that had set it by default |
14:41 |
ROllerozxa |
iirc warr gave their 2 cents on the issue and mentioned that air_equivalent could work just as well as a node group |
14:41 |
jonadab |
That makes sense to me. |
14:41 |
erle |
yes, but a) the engine does not warn if you set air_equivalent b) it would have to be the same node group so that mods that set it can interact with those that read it |
14:41 |
jonadab |
But yeah, backward compatibility doesn't always care about what makes sense. |
14:43 |
erle |
in any case, this is a systemic issue: engine devs decide “this has to go” and neither “this is in use” nor “there is no clear replacement right now, we need to work it out” seem to be good counter arguments. |
14:44 |
erle |
i don't have a mod using air_equivalent, but i see this in other parts of minetest again and again. it is what wuzzy describes as the “rug pull”. |
14:44 |
erle |
and the response is often that it was clearly written down that this thing has to go, which is useful to assign blame to the mod devs, but does not address the breakage. |
14:44 |
ROllerozxa |
anyways would be neat to get a second approval on #13847, it fixes the display of codeblocks in the HTML rendered lua API documentation which is currently broken |
14:44 |
ShadowBot |
https://github.com/minetest/minetest/issues/13847 -- doc: fix improper code blocks parsing for lua_api_deploy by using pymdown-extensions by corpserot |
14:45 |
erle |
i would like such stuff to be solved like the texture alpha thing was: let the engine annoy people about it until they fix it, then yank it. |
14:45 |
erle |
(as soon as it is no longer in use in existing code) |
14:47 |
erle |
see issue #10915 for how that was handled (lots of console spam, mods fixed it AFAIK) |
14:47 |
ShadowBot |
https://github.com/minetest/minetest/issues/10915 -- use_texture_alpha warning spam |
14:47 |
MTDiscord |
<luatic> I suppose that when air_equivalent was removed, there should have been an official deprecation. We can strive to do this better in the future. |
14:48 |
erle |
luatic as long as there is no policy for deprecation, this will continue |
14:48 |
erle |
i mean for deprecation prerequisites |
14:50 |
erle |
for the use_texture_alpha thing there was a spreadsheet in PR #10819 for example to show how this affects past, present and possible future clients |
14:50 |
ShadowBot |
https://github.com/minetest/minetest/issues/10819 -- [DONT SQUASH] Rework use_texture_alpha by sfan5 |
15:44 |
|
Farooq joined #minetest-dev |
16:09 |
|
Desour joined #minetest-dev |
16:23 |
|
Farooq joined #minetest-dev |
16:52 |
|
Farooq joined #minetest-dev |
16:54 |
|
fluxionary joined #minetest-dev |
17:07 |
|
Farooq joined #minetest-dev |
17:15 |
|
fluxionary joined #minetest-dev |
17:27 |
|
Farooq joined #minetest-dev |
17:32 |
|
Farooq joined #minetest-dev |
17:36 |
|
Farooq joined #minetest-dev |
18:10 |
|
grorp joined #minetest-dev |
18:14 |
grorp |
5.8.0-dev enables shaders by default on Android, so you're at least less likely to experience this issue. |
18:14 |
grorp |
whoops, wrong channel, sorry |
19:23 |
Krock |
!tell x2048 @x2048 I am sad that we lose a very skilled developer. Still - thank you for your contributions and good luck with your life's journey. I'm looking forward to hear from you again :) |
19:23 |
ShadowBot |
Krock: OK. |
19:23 |
Krock |
<3 ShadowBot |
19:23 |
ShadowBot |
♥ Krock. |
19:31 |
[MTMatrix] |
<localhost> what if make same nearest blocks as symlinks (or mapblocks, just link data to nearest next same mapblock)? If possible of course |
19:41 |
Krock |
which problem would you like to address with that? |
19:47 |
erle |
is there even a plain file backend anymore |
19:48 |
[MTMatrix] |
<localhost> symlinks in fs vs sqlite (/joke) |
20:16 |
|
appguru joined #minetest-dev |
20:17 |
[MTMatrix] |
<localhost> also, i thins, sqlite may be faster than, if have up to 32 gb ram server and move the sqlite map to ram disk (or journal_mode = MEMORY) |
20:17 |
[MTMatrix] |
<localhost> also, i thinks*, sqlite may be faster than, if have up to 32 gb ram server and move the sqlite map to ram disk (or journal_mode = MEMORY) |
20:17 |
[MTMatrix] |
<localhost> 👀 |
20:21 |
[MTMatrix] |
<localhost> But, I'm happy, minetest still can run on potato with 1 gb ram + swap + zram; minecraft can't :D |
20:22 |
erle |
ha, and i thought with 2GB RAM i had the lowest-spec thing |
20:32 |
MTDiscord |
<luatic> localhost: Minetest already has an in-memory backend, no need to use SQLite for that. |
20:32 |
MTDiscord |
<luatic> (also, 1 GB RAM will probably only work with a very lightweight OS and game; Lua is not exactly memory-efficient) |
20:38 |
erle |
something something creating many small strings lol |
20:41 |
MTDiscord |
<luatic> I haven't analyzed what exactly is usually responsible for huge memory consumption, but I'd be willing to go out on a limb and say it isn't the strings because those are interned and pretty space-efficient. I think the thiccness of tables is probably to blame. |
20:45 |
erle |
luatic maybe analyze first before making grandiose statements :P |
21:03 |
[MTMatrix] |
<localhost> hm, lua is C based lang, it pretty lighweight, i guess 🤔 |
21:04 |
[MTMatrix] |
<localhost> ofcourse if make 2^64 recursion returning it can't be lightweight |
21:04 |
[MTMatrix] |
<localhost> ofcourse if make 2^(64*1024) recursion returning it can't be lightweight |
21:04 |
[MTMatrix] |
<localhost> of course if make 2^(64*1024) recursion returning it can't be lightweight |
21:06 |
MTDiscord |
<luatic> localhost: That logic doesn't check out. It is very much possible to implement "heavyweight" / time- or memory-inefficient languages in an efficient language. Python is written in C too and it definitely isn't "pretty lightweight". |
21:06 |
MTDiscord |
<josiah_wi> Is "C based" the same thing as "implemented in C"? |
21:08 |
[MTMatrix] |
<localhost> > Python is written in C too and it definitely isn't "pretty lightweight". |
21:08 |
[MTMatrix] |
<localhost> oops |
21:08 |
[MTMatrix] |
<localhost> good point |
21:08 |
[MTMatrix] |
<localhost> out.png |
21:09 |
[MTMatrix] |
<localhost> passive small server |
21:10 |
[MTMatrix] |
<localhost> you can see link on the attach? |
21:10 |
MTDiscord |
<luatic> One of Lua's main problems regarding memory efficiency is my opinion, as said, how large tables - pretty much the only compound data structure besides userdata and closures - are. All Lua tables have an array part, a hash part, and a metatable field. The hash part isn't particularly space-efficient - you need to store type-tagged key, value pairs (and IIRC a reference to the next entry on top of that, at least in PUC) for each entry. It |
21:10 |
MTDiscord |
also grows dynamically, so it will allocate for the next power of two. |
21:10 |
MTDiscord |
<luatic> localhost: All I see (on Discord) is a text message saying "out.png". |
21:11 |
[MTMatrix] |
<localhost> bruh, matterbridge moment, and i know how fix it, but rebuild required |
21:11 |
[MTMatrix] |
<localhost> out.png: https://matrix.inex.rocks/_matrix/media/v3/download/inex.rocks/adBsbRvoosjcLqhXhgNWbPdh |
21:11 |
MTDiscord |
<luatic> As an extreme example for the inefficiency of Lua's tables, take a two-element table containing two numbers (a 2d-vector) {x=1,y=2}. See how large this table is. Now compare this to the equivalent C struct. The difference will be an order of magnitude. |
21:11 |
MTDiscord |
<luatic> the memory inefficiency, that is* |
21:12 |
MTDiscord |
<luatic> this is simply the cost at which "everything is a hash table + array list" comes |
21:13 |
MTDiscord |
<luatic> localhost: I see. Well, MTG is a pretty barebones game in my book. Without mods it shouldn't consume much memory. But wait until you see the memory consumption of a larger game like Mineclone. |
21:14 |
erle |
look rather at mineclonia |
21:14 |
erle |
like the new one (that is still developed) |
21:14 |
erle |
mineclone2 is full of performance stupidities |
21:14 |
[MTMatrix] |
<localhost> also, 7 players on the server can feed ram, but zram and swap helps... (i'm tested before changes from it: https://forum.minetest.net/viewtopic.php?f=10&t=1825 |
21:14 |
erle |
while the fork is developed by people who can actually code their way out of a wet paper back |
21:14 |
[MTMatrix] |
<localhost> also, 7 players~ on the server can feed ram, but zram and swap helps... (i'm tested before changes from it: https://forum.minetest.net/viewtopic.php?f=10&t=1825 |
21:15 |
MTDiscord |
<luatic> "code their way out of a wet paper back"? |
21:15 |
MTDiscord |
<luatic> (I understand what you're trying to say, but I have trouble parsing this figure of speech...) |
21:15 |
erle |
luatic the implication that mineclone2 team could not code their way out of a wet paper bag ;) |
21:15 |
erle |
like don't use mcl2 to shit on the minetest engine |
21:15 |
[MTMatrix] |
<localhost> oh sorry, my custom english |
21:16 |
erle |
it basically does enough stuff wrong that the engine is not responsible |
21:16 |
MTDiscord |
<luatic> erle: I'm not shitting on the engine |
21:16 |
MTDiscord |
<luatic> I was shitting on Lua, actually |
21:17 |
[MTMatrix] |
<localhost> but alternatives? |
21:17 |
MTDiscord |
<luatic> Lua gave me consing PTSD /s |
21:17 |
[MTMatrix] |
<localhost> haven't |
21:17 |
erle |
luatic prove that lua is the problem then |
21:17 |
[MTMatrix] |
<localhost> human readable and simple |
21:17 |
MTDiscord |
<luatic> localhost: if you want memory efficiency, you ultimately don't want lua |
21:17 |
MTDiscord |
<luatic> luckily most of the time memory efficiency is not that much of a problem |
21:17 |
erle |
look at work we have lua on embedded devices |
21:17 |
erle |
lua is small enough |
21:17 |
[MTMatrix] |
<localhost> yeah, assembler pls |
21:18 |
[MTMatrix] |
<localhost> with low-level ops |
21:18 |
MTDiscord |
<luatic> localhost: that's the fallacy of taking it to the extremes; something like Rust, Zig, or even Go may very well suffice already |
21:18 |
[MTMatrix] |
<localhost> joke |
21:18 |
MTDiscord |
<luatic> (will usually suffice, and often produce better assembly than if you insisted on handwriting everything) |
21:18 |
erle |
and AFAIK the “memory consumption of a larger game like Mineclone” is influenced by the choice to include a lot of the background music – which the engine mitigates with the next release AFAIK |
21:19 |
[MTMatrix] |
<localhost> imagine, mods/huge_mod_go_with_150_MB.bin |
21:19 |
MTDiscord |
<luatic> erle: lua is definitely small, i'm not disputing that; but lua tables aren't small |
21:20 |
erle |
prove that it matters luatic |
21:20 |
erle |
in my experience, lua is CPU-limited before it becomes memory-limited (because of the hashes) |
21:20 |
erle |
but i have never benchmarked it |
21:22 |
MTDiscord |
<luatic> localhost: Go using static linking is a different topic and more or less only tangentially related to memory consumption. |
21:22 |
MTDiscord |
<luatic> (yes, the executable code needs to be loaded into memory, but that's a one-time cost and usually the binaries are not nearly as large) |
21:23 |
[MTMatrix] |
<localhost> i think, maybe just write directly "mods" as attachment to engine on vanilla code, but is harder... But is super mega fast and lightweight (maybe) |
21:24 |
[MTMatrix] |
<localhost> oops, i forgot about clients... |
21:24 |
[MTMatrix] |
<localhost> rebuilding... |
21:25 |
MTDiscord |
<luatic> great, i just fired up mineclone and my minetest died |
21:25 |
MTDiscord |
<luatic> yeah i think it's being killed for too much memory usage... |
21:28 |
[MTMatrix] |
<localhost> default settings? |
21:34 |
MTDiscord |
<luatic> alright, took a look now and it seems Mineclone has about 100 MB base Lua memory usage, so indeed this is not at all the main factor in the 2 GB+ memory usage |
21:37 |
[MTMatrix] |
<localhost> just maybe active blocks eat too mush memory... |
21:37 |
[MTMatrix] |
<localhost> just maybe active blocks eat too much memory... |
21:40 |
erle |
luatic delete the background music, then try again. then ponder where the engine is struggling here., |
21:42 |
[MTMatrix] |
<localhost> Ah yes... background music really may out of mem... It happenes 👀 |
21:43 |
MTDiscord |
<luatic> erle: meh, I don't really care about Mineclone, but it is valuable to know that Lua does not seem to be the main culprit |
21:43 |
erle |
how did you measure this? |
21:47 |
erle |
also you are probably not surprised that “this game crashes the engine via OOM” is not taken seriously by the mcl2 dev team. unfortunately, it would probably be a lot of work if CDB would have checks for such stuff. :/ |
21:47 |
erle |
(and also you can't run random lua and get away with it for long before someone drops a cryptominer mod) |
21:47 |
MTDiscord |
<luatic> erle: collectgarbage"count" |
21:48 |
erle |
oh |
21:48 |
erle |
i thought maybe you had a more general method |
21:49 |
MTDiscord |
<luatic> more general in what sense? |
21:49 |
erle |
bc then i could see how much (if any) memory i can save with the unicode_text vs texmods |
21:49 |
erle |
i.e. generate texture on server vs generate texture on client |
22:33 |
|
panwolfram joined #minetest-dev |
22:39 |
[MTMatrix] |
<localhost> possible add to the engine function lock controls? I mean, no need set position via while true bla bla, no need set unbreakable blocks around player; just lock controls - ignore their key presses temporally |
22:42 |
[MTMatrix] |
<localhost> or advice please efficient alternatives, safe and no cheatable 🤔 |
22:45 |
[MTMatrix] |
<localhost> oh, again no correct channel for that question (maybe)... |