Minetest logo

IRC log for #minetest-dev, 2021-07-16

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:07 twoelk left #minetest-dev
01:06 sofar ""Refer to the documentation of the setting for a list of valid placeholders.""
01:06 sofar what does that even mean?
01:06 sofar it's not a setting API, it's a method
01:06 sofar there are no settings in the call
01:06 sofar ...
01:06 sofar https://github.com/minetest/minetest/blob/f4d8cc0f0bf33a998aa0d6d95de4b34f69fb31db/doc/lua_api.txt#L4944
02:22 behalebabo joined #minetest-dev
03:02 specing_ joined #minetest-dev
05:08 Extex joined #minetest-dev
06:01 YuGiOhJCJ joined #minetest-dev
07:49 olliy joined #minetest-dev
08:13 tech_exorcist joined #minetest-dev
08:23 tech_exorcist joined #minetest-dev
08:42 Wuzzy joined #minetest-dev
09:09 Fixer joined #minetest-dev
09:50 calcul0n_ joined #minetest-dev
10:22 calcul0n__ joined #minetest-dev
10:56 entuland joined #minetest-dev
13:12 BuckarooBanzai6 joined #minetest-dev
13:13 Calinou_ joined #minetest-dev
13:15 basxt0 joined #minetest-dev
14:21 Fixer joined #minetest-dev
14:46 Krock would it be a problem if minetest.settings:get("key") would return a Settings object (groups)? The format of each setting is known, hence this wouldn't break mods unless they do some kind of settings parsing
14:59 specing_ joined #minetest-dev
15:19 Lone_Wolf joined #minetest-dev
15:39 Extex joined #minetest-dev
15:42 tech_exorcist joined #minetest-dev
15:45 Krock actually that's a bad idea. introducing Groups to the Lua API would arise many new issues regarding circular references and that fallbacks aren't working
17:03 entuland joined #minetest-dev
17:16 Krock erm guys I. I think I found a way to speed up the serialization by 26x for large item metadata by using strstr rather than custom loops
17:18 MTDiscord <exe_virus> Nice. I figured our minetest.serialize and deserialize were total crap.
17:19 sfan5 why does serialization need to find something in a string?
17:19 MTDiscord <exe_virus> Like why do we serialize to something that can be directly read into a variable via Lua code, rather than using straight up binary
17:19 MTDiscord <Warr1024> We serialize to lua code because in theory the lua code parser is faster than a binary parser written in lua would be.
17:20 MTDiscord <exe_virus> But it's less effecicient size wise and typically the same speed?
17:20 sfan5 item metadata does not use Lua serialization btw
17:21 MTDiscord <Warr1024> Yeah, and we have JSON serialization sprinkled around in other places too.
17:21 MTDiscord <exe_virus> JSON ain't much better
17:21 MTDiscord <exe_virus> Both are human readable, when not human readable is typically much better
17:21 Krock serializeJsonStringIfNeeded needs to find it
17:21 MTDiscord <Warr1024> They all have trade-offs.  A big advantage of JSON is usability with external tools.
17:21 sfan5 item metadata is not straight json either
17:22 MTDiscord <exe_virus> Fair, but why not dump to binary for all of our serializations?
17:22 sfan5 binary-safety is a bit of an issue
17:23 MTDiscord <Warr1024> If we adopted an existing but already efficient standard like MsgPack that would be ideal in theory, but in practice it would probably end up meaning xkcd 927 and now we have 4 different serialization formats.
17:23 MTDiscord <exe_virus> Do it byte by byte. Literally memcpy
17:23 MTDiscord <exe_virus> MsgPack is mediocre, in my experience.
17:23 MTDiscord <exe_virus> Sadly
17:23 MTDiscord <exe_virus> Might as well do JSON at that point
17:23 MTDiscord <Warr1024> I mean we could also just spend eternity bikeshedding about our favorite serialization formats too :-)
17:23 Krock oh god I'm just somewhat stupid
17:24 Krock it felt too good to be true because that's a LT and GT comparison in said function
17:25 Krock it would be great if we could entirely switch to binary format (length + data) but that won't be easily done
17:26 sfan5 serializeJsonStringIfNeeded could use SIMD, you just have to do it yourself
17:26 Krock Inventory stuff is currently formatted in the old per-player-files style
17:27 Krock yeah. compare 8 bytes of spaces or quotation marks each
17:28 MTDiscord <Warr1024> I had some mods where I switched to a more binary-like format, taking advantage of Lua's string's 8bitness ... but I ended up having to heuristically check for the old serialization format and convert that data automatically, so it ended up being a mess.  It was also a lot harder to manually tweak stuff in the new serialization format and making a proper editor for it was too much of a pain.
17:28 entuland_ joined #minetest-dev
17:30 Krock if you have proper versioning from the start, maintaining compat isn't a too big pain
17:31 nrz joined #minetest-dev
17:32 MTDiscord <Warr1024> So instead of 4 serialization formats, we'd end up with 2 versioning schemes, one with 3 serialization formats and 1 with 1 more... 😏
17:34 MTDiscord <Warr1024> If past experience is any indication, adding version metadata to a thing is a good way to ensure that there's only ever one version of the standard, so maybe if we'd have done that this wouldn't be a problem in a different way :-D
17:34 sfan5 when you have enough forethought to add a version you design it well from the beginning
17:34 sfan5 ;)
17:37 MTDiscord <Warr1024> True, though it takes surprisingly little forethought to avoid all mistakes entirely: you just need to spend enough time planning that you never actually complete the project ;-D
17:49 behalebabo joined #minetest-dev
17:50 MTDiscord <josiah_wi> So stop arguing and approve my PR. (/s)
18:03 MTDiscord <Warr1024> Hmm, that reminds me, I was going to try building and testing android with your PR...
18:04 sfan5 android does not use cmake so there is no difference
18:04 MTDiscord <Warr1024> In about 15 minutes I'll be able to prove that :-D
18:12 MTDiscord <Warr1024> https://github.com/minetest/minetest/pull/11378#issuecomment-881022321 really makes me wonder if it would make sense to have an API for games/mods to define their own "game mode" type info to display in that section of the menu.
18:13 MTDiscord <Warr1024> Game name and (where known) version would be nice, and maybe games have other modal info that would be meaningful in lieu of what's being elided...
18:14 MTDiscord <Warr1024> Can I submit a PR to a PR, i.e. submit a PR to have someone merge changes into a branch that they're using for a PR for MT, i.e. so that if they accept my changes into their branch then it will effectively update the original PR?
18:17 MTDiscord <Benrob0329> Yes, make a PR for their fork
18:17 MTDiscord <Benrob0329> GH also allows PR submitters to allow edits from project maintainers
18:31 Extex joined #minetest-dev
19:04 MTDiscord <josiah_wi> Ah, Irrlicht has its CMake set up to do Android, but we already tested that part.
19:22 appguru joined #minetest-dev
19:26 MTDiscord <Warr1024> I was able to successfully build.  Presumably that should be enough to assume it actually works and I don't have to test that thoroughly?
19:27 MTDiscord <Warr1024> I can't actually say that I fully understand the PR well enough to make a call on principle, so I'd have to look at comprehensive empirical evidence to be able to support it myself.  I mean, in principle I like the concept very much, it's just hard for me to say that I'm confident it doesn't break something important.
19:27 sfan5 if if something is supposedly important and not in CI then it's either not important or not testable
19:29 MTDiscord <Warr1024> Unless somebody maintains something for some obscure platform and is going to chime in, I'm getting inclined to approve it based a "sound concept and I can't find a problem with the implementation" standard.
19:30 MTDiscord <Warr1024> I mean, if it turns out it DOES break something, we can just revert it probably, right?  It's not like I haven't submitted PRs myself that introduced regressions, pushed to get them merged, and then had to fix the regressions in a hurry later...
19:30 MTDiscord <josiah_wi> I need to learn to write good descriptions that explain what things do in a concise way, but of course that's the difficult part of good documentation.
19:31 MTDiscord <Warr1024> As I understand it, you're basically just deleting a bunch of redundant crap that we only had in the first place because of the "external" status of Irrlicht, so the only risk would be from a mismatch in version/behavior that shouldn't have been allowed to exist in the first place, right?
19:32 MTDiscord <josiah_wi> Irrlicht generates a CMake file that tells the Minetest CMake about itself, instead of us telling Minetest about it.
19:33 MTDiscord <josiah_wi> Btw sfan, dous the CI test both static and dynamic linking? I tested both multiple times during development but that's the type of thing that one could work and the other could have an issue.
19:34 MTDiscord <josiah_wi> I'm not concerned there's any problem now, but I'm wondering whether both are tested in case things are modified in tde future and one could break.
19:35 sfan5 gitlab-ci does static linking since it uses lib/irrlichtmt
19:36 MTDiscord <Warr1024> how much testing is actually included in our CI?  Do we cover mulitple platforms?  Do we have like regression tests or something to ensure things actually behave correctly rather than just compiling?
19:38 sfan5 have you ever expanded the list of ci builds?
19:38 MTDiscord <josiah_wi> If you look at the CI build you can see that it builds on Ubuntu with some various project configurations, and different computers (Clang and g++) and Mingw. Also some code analysis checks.
19:39 MTDiscord <josiah_wi> compilers*
19:39 sfan5 ^ that plus android, almost all of them run unittests, once under valgrind, there's a small client-server integration test
19:39 MTDiscord <josiah_wi> Ah, so that's why one is always slow.
20:00 MTDiscord <Warr1024> Ah, okay, then I probably shouldn't have to worry about those kinds of regressions, I mostly just need to test stuff that has UX impact
20:14 calcul0n__ joined #minetest-dev
23:05 Alias2 joined #minetest-dev

| Channels | #minetest-dev index | Today | | Google Search | Plaintext