Minetest logo

IRC log for #minetest-dev, 2022-01-25

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

All times shown according to UTC.

Time Nick Message
00:10 v-rob joined #minetest-dev
00:37 Alias2 joined #minetest-dev
01:29 v-rob joined #minetest-dev
02:30 tekakutli joined #minetest-dev
03:28 queria joined #minetest-dev
03:34 queria joined #minetest-dev
04:06 v-rob joined #minetest-dev
04:24 v-rob joined #minetest-dev
05:00 MTDiscord joined #minetest-dev
05:53 v-rob joined #minetest-dev
06:02 Pexin joined #minetest-dev
07:16 v-rob joined #minetest-dev
07:31 v-rob joined #minetest-dev
07:45 olliy joined #minetest-dev
08:24 calcul0n joined #minetest-dev
08:32 nemo42 joined #minetest-dev
09:17 basxto joined #minetest-dev
09:20 basxto joined #minetest-dev
09:40 proller joined #minetest-dev
10:10 Fixer joined #minetest-dev
10:35 erlehmann joined #minetest-dev
11:07 appguru joined #minetest-dev
11:19 HuguesRoss joined #minetest-dev
11:38 proller joined #minetest-dev
12:31 erlehmann the response to #11989 really irritates me. has anyone ever proposed a rule to *not* do breaking API changes if at least two games or mods can be pointed out that would break?
12:31 ShadowBot https://github.com/minetest/minetest/issues/11989 -- Incompatible API change in get_player_control() causes server crashes
12:32 erlehmann it would shortcut all these ridiculous debates about “oh this is not really a breaking change because while game devs and mod devs know it, we haven't ever written it down in 10 years, so they are totally wrong in assuming stuff works – THOSE FOOLS!”
12:53 jordan4ibanez joined #minetest-dev
14:34 sfan5 having it return a string if not called on a player is literally a copy-paste mistake from whoever implemented this
14:34 sfan5 changing the API is already hard enough as is, that we have to seriously discuss the implications of a change like this says a lot
14:35 erlehmann IMO there is literally no cost with reverting the breakage and maybe outputting a warning about it
14:36 sfan5 and in case it isn't obvious I do not support the "Microsoft" approach to compatibility
14:36 erlehmann the problem is changing it in a minor release, with no warning
14:36 erlehmann and no deprecation period
14:36 sfan5 we only have minor releases
14:36 sfan5 >deprecation period
14:37 erlehmann then stop breaking stuff
14:37 sfan5 please don't make me laugh
14:37 erlehmann hey deprecation worked fine for the alpha texture spam thing
14:37 erlehmann mod devs were like how do i fix this and fixed it
14:37 sfan5 the minetest.deserialize semi-vulnerability is just as much of a "changed in a minor release with no warning" like this
14:37 MTDiscord <luatic> erlehmann: how should such a warning work?
14:37 sfan5 yet you don't seem to care about that one
14:38 celeron55 if someone's wondering how that code actually came to be, i think it was written by RBA in 2012-11, tested by Taoki and merged by myself. apparently i didn't catch the mistake
14:38 sfan5 @luatic you put a log_deprecated(L, "stupid"); in the right part of the if, easy
14:38 MTDiscord <luatic> sfan5: not easy
14:39 erlehmann sfan5 a) i did not notice b) the only thing you can deduce from that is that i may be a hypocrite, not that what i say is wrong c) security is a good reason to break an API, random musings about API return values over 8 years after the API was first implemented, is probably one of the worst reasons
14:39 MTDiscord <luatic> because it has come to be expected that player methods can be called for entities without spamming logs
14:39 erlehmann luatic may be right
14:39 erlehmann i have seen code in node on punch handlers
14:39 erlehmann obviously anything can punch a node right?
14:39 sfan5 "it has come to be expected" that sounds like the actual problem
14:39 erlehmann so people ask for puncher:get_player_control().sneak orwhatever
14:40 MTDiscord <luatic> sfan5: the header literally says it
14:40 MTDiscord <luatic> https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L6646
14:40 MTDiscord <luatic> "no-op for other objects"
14:40 erlehmann which is a lie
14:40 MTDiscord <luatic> now logging a warning isn't exactly no operation, is it?
14:40 erlehmann the documentation lied about other stuff too
14:40 sfan5 is returning an empty string a "no-op"?
14:40 erlehmann luatic you are right, we can't do the warning probably
14:41 erlehmann the empty string wins on terms of not breaking a bunch of unrelated shit that the person who introduced this change is probably not going to fix by themselves
14:41 erlehmann this would be different if someone would go around and fix all those mods that go crashy and ensure they caught all of them
14:41 MTDiscord <luatic> I have an idea for the warning, but it's not clean either. If we returned an empty table, we could set a metatable on it that logs the warning if the table is indexed.
14:41 sfan5 minetest development is hell, no wonder nobody wants to do it
14:42 sfan5 you change literally anything and you get yelled at by devs and server owners
14:42 rubenwardy the fix for mods is really simple
14:42 sfan5 AND you are expected to either fix their code for free or revert the change
14:42 erlehmann hey i submitted a patch
14:42 erlehmann for free
14:42 erlehmann and i spent time helping users to fix their worlds
14:42 sfan5 submit a patch to your broken game instead
14:42 erlehmann that were going crashy
14:42 erlehmann i will *also* do that
14:43 erlehmann but come on, you can't casually break 3 games and claim it's someone elses fault for not subscribing to your idea of API aesthetics
14:43 erlehmann i am pretty sure there are more cases of that, in particular node punch handlers
14:43 erlehmann and for server admins it is really ugly
14:45 erlehmann from my POV (game/mod dev), minetest development has been hell whenever someone changed stuff that previously worked. literally all of the issues i had that frustrated me were of the “someone thinks this should be different for aesthetic reasons, code goes crashy or works different” type
14:45 erlehmann it is perfectly possible to move forward without breaking things
14:46 sfan5 puncher:real_get_player_control_v2_fixed()
14:46 erlehmann it's just that it is ugly and apparently enough people think looking good is better than not creating a ton of work for mod devs
14:46 erlehmann yeah, puncher:get_player_control_2()
14:46 erlehmann exactly that, then remove the old function in some major release down the road
14:47 erlehmann at least then the bugs make sense. no one will get bug reports with “i updated minetest and your game crashes at startup”
14:47 erlehmann (it was a wolf that was a boat passenger, btw)
14:49 erlehmann the worst thing about this is that everyone of the devs is perfectly able to not casually break stuff. it is not hard work, no one is too stupid for it. but time and time again, aesthetics trump practical choices, creating more bugs.
14:52 MTDiscord <luatic> PlayerRefs and ObjRefs should be seperated entirely for a clean API. PlayerRefs should extend ObjRefs. Same for object properties; players should have player properties instead.
14:52 MTDiscord <savilli> it's legal to change api between major releases
14:53 MTDiscord <luatic> the entire player:get_player_something() is ugly already
14:53 MTDiscord <luatic> next major release is 6.0, just saying
14:53 MTDiscord <savilli> nah, 5.5 is also major
14:53 sfan5 it's not
14:53 MTDiscord <luatic> ^
14:53 MTDiscord <luatic> semver doesn't work that way, @savilli
14:53 MTDiscord <luatic> I mean, technically it might be
14:53 erlehmann but minetest uses sentimental versioning, not semantic versioning!
14:54 MTDiscord <luatic> But according to semver it may not be
14:54 erlehmann increase the numbers how it feels right
14:54 sfan5 but applying semver by-the-letter would eternally stall progress
14:54 MTDiscord <savilli> it's clearly major bc it has new features
14:54 sfan5 so we don't do it
14:54 MTDiscord <savilli> not bc some numbers
14:54 MTDiscord <luatic> you don't understand semver
14:54 MTDiscord <luatic> read https://semver.org/
14:54 erlehmann sfan5 applying semver by the letter does not stall progress. it just means that it is immediately obvious when devs can't be bothered to make code backwards compatible.
14:55 MTDiscord <luatic> new features allow increasing the minor version number
14:55 erlehmann IMO the x.y.z numbers are best interpreted in way of risk. x is a big risk when upgrading, y is a small risk, z is next to none.
14:55 sfan5 erlehmann: in reality applying semver by the latter would mean you only ever do major bumps
14:55 sfan5 which helps nobody
14:56 sfan5 letter*
14:56 MTDiscord <savilli> changing the discussed api looks like a small risk to me
14:56 MTDiscord <savilli> you don't need to rewrite everything
14:57 MTDiscord <luatic> If it can be shown that a technically breaking change is highly unlikely to cause mod breakage and yields a considerable improvement, it's fine to just increment the minor version I believe.
14:57 erlehmann sfan5, i know that argument and yeah, everyone who either can't write or can't be bothered to write future-proof code thinks this is 100% the truth. the reality is that breaking changes are tested and batched.
14:58 erlehmann and then applied in the next major release
14:58 MTDiscord <luatic> savilli: it will lead to immediate crashes for all MCL users with outdated or MCL2
14:58 erlehmann i am not sure if the fixed mcl mods are even on contentdb lol
14:58 MTDiscord <savilli> well, should have read release notes
14:58 MTDiscord Command sent from Discord by Luatic:
14:58 MTDiscord !?
14:58 erlehmann yeah the users should have read the release notes lol
14:58 MTDiscord <luatic> MCL2 has 160k downloads
14:59 MTDiscord <savilli> then MCL2 doesn't work with 5.5, and users shouldn't update until it will be fixed
14:59 MTDiscord <savilli> that's a good contract
15:00 erlehmann you know what, i am not saying this lightly, but in my opinion, every single one of you who thinks normal users should suffer to satisfy your sense of aesthetics has a bit of an empathy problem. it's the same as with the maps: there are people out there who have no idea what lua or c++ is who happily play minetest and they have no idea what to do if they upgrade and it fails.
15:00 MTDiscord <luatic> It isn't!?
15:00 MTDiscord <luatic> Side note, MT 5.5 aggressively upgrading maps is still frustrating
15:00 MTDiscord <luatic> It has lead to me having both a 5.5 and 5.4 test world for my mods now
15:01 erlehmann luatic i meant the tga maps actually. but yes lol. it is frustrating. it means you can not even go back to 5.4 if minetest changes make your world crashy!
15:01 erlehmann that makes it worse lol
15:01 MTDiscord <luatic> didn't even think of that, poor users
15:02 erlehmann as a game dev, i am willing to update the check for get_player_controls(), of course. but think of users please.
15:02 erlehmann get_player_control() sorry
15:02 sfan5 I am pretty sure MCL contains a bunch of engine-version specific workaround that rely on undocumented or internal things
15:03 sfan5 supposed those break suddenly, would it means you also have an empathy problem?
15:03 sfan5 -s
15:04 erlehmann well in this case it costs literally nothing to not upset users. also i am pretty sure mcl2 is a bunch of bad code held together with duct tape and chewing gum, because most of mineclonia development consists of cleaning that up.
15:05 proller joined #minetest-dev
15:06 erlehmann sfan5 if other mods or games broke with 5.5 in a way that users can not easily fix it or downgrade to 5.4 (because the world gets converted) i would say, that, yes: whoever broke it evidently does not care about other people's problems enough and does not value their time. i would be surprised if that is a controversial statement, even.
15:07 erlehmann i'd prefer to not go into it deeper, because i do not want to turn into kilbith
15:08 sfan5 does "easily fix" include updating the game?
15:09 erlehmann not really, since for that the game would have to be fixed first.
15:09 erlehmann and you can't expect users to figure out which mod has this behaviour.
15:09 erlehmann the mcl* mods are probably not the only ones that break, just the only ones i know about.
15:10 erlehmann a user having mod soup of like 15 mods is the case i envision
15:10 sfan5 they don't have to, open the content tab and click all green squares until none are left
15:10 sfan5 or I think there's an "Update all" button actually
15:10 celeron55 the mod name is probably on the error message shown in the dialog, right?
15:11 erlehmann AsyncErr: Lua: Runtime error from mod '??' in callback luaentity_Step(): ...netest/games/mineclonia/mods/ENTITIES/mcl_boats/init.lua:263: attempt to index local 'ctrl' (a nil value)
15:11 erlehmann stack traceback:
15:11 erlehmann ...netest/games/mineclonia/mods/ENTITIES/mcl_boats/init.lua:263: in function 'on_step_old'
15:11 erlehmann ...mes/mineclonia/mods/ENVIRONMENT/mcl_void_damage/init.lua:17: in function <...mes/mineclonia/mods/ENVIRONMENT/mcl_void_damage/init.lua:16>
15:11 celeron55 personally i would go with "ok whatever, return a string then and write to the docs 'sorry this API was designed in 2012'"
15:11 erlehmann i agree with celeron55, it's the simplest thing that works
15:12 erlehmann having assisted server owners in fixing crashes, i can say that whatever is obvious to us now is not obvious to someone who just set up a server in their spare time for their friends or kids.
15:12 celeron55 this isn't something that prevents making good design choices in the future
15:13 erlehmann also, there are kids out there who have no idea about all of this stuff. maybe the error message will make some of them into programmers! or primitivists, if they conclude software was a mistake.
15:13 MTDiscord <luatic> erlehmann: BTW, I think the proper fix for mods is to check for ref:is_player() instead of ref:get_player_controls() or {}, ref:get_player_controls() and ref:get_player_controls().something or the like.
15:14 erlehmann luatic how to fix mods is not the issue here.
15:15 erlehmann i mean, i appreciate the input, but i know perfectly well what the boat code does wrong.
15:15 sfan5 anyway it's not like there isn't a good way forward for this issue, but it would have likely turned out different if the text wasn't the same "noo you can't change this undocumented and never intended behaviour, now my mod broke, go revert it!!!" we are very tired of hearing
15:15 sfan5 @luatic it just crossed my mind that you can return a table which throws a warning when it's indexed
15:16 sfan5 (not a serious suggestion)
15:16 erlehmann sfan5 i provided literally every bit of information and wrote a patch which i tested. what more do you want me to do?
15:16 erlehmann if it is “fix your game”, yes, i will
15:16 erlehmann regardless of what minetest does
15:17 MTDiscord <luatic> sfan5: lol I suggested that 35 min ago "I have an idea for the warning, but it's not clean either. If we returned an empty table, we could set a metatable on it that logs the warning if the table is indexed."
15:17 erlehmann yeah and then you have to scan contentdb to ensure that no one had the admittedly stupid idea to check for the empty string
15:17 MTDiscord <luatic> or for the type
15:17 erlehmann indeed
15:17 MTDiscord <luatic> unfortunately such scans are practically impossible due to Lua's dynamic nature
15:18 sfan5 I'd say mineclone is the only game/mod where this can reasonably cause problems in practice
15:18 erlehmann hahahahaha
15:18 MTDiscord <luatic> I did in fact grep around a bit, and driver:get_player_control().something seems to be a common idiom in mods which provide "driveables".
15:18 erlehmann sfan5, based on what? gut feeling?
15:18 erlehmann i greped too, this is how i found the puncher:get_player_control() pattern
15:18 MTDiscord <luatic> OFC I don't have the time to analyze the content to determine whether driver can be an object and whether driver:is_player() is checked earlier on.
15:18 erlehmann in nodecore i think
15:19 sfan5 erlehmann: how many games do you know where entities can "ride" other objects?
15:19 sfan5 don't answer "three"
15:19 MTDiscord <luatic> I know of a fourth ;) but it's 0.4.x-only
15:19 MTDiscord <luatic> the most frequent "idiom" seems to be placer:get_player_control().sneak
15:20 erlehmann sfan5 uh no idea about games, but you are focusing too much on my example. see the thing that luatic showed.
15:20 erlehmann like 4 or 5, but does it matter?
15:22 sfan5 of course it does
15:22 sfan5 nothing changed about calling get_player_control() on players
15:23 MTDiscord <luatic> if you wanted to fight fire with fire, continue returning empty strings but set a metatable on the string table such that attempting to index a string with any of the control names will result in a warning
15:23 erlehmann look, people call this not only for boats
15:25 erlehmann lib_mount has
15:25 erlehmann local ctrl = entity.driver:get_player_control()
15:25 erlehmann if ctrl.aux1 then
15:25 erlehmann painting has
15:25 erlehmann if puncher:get_player_control().sneak
15:25 MTDiscord <luatic> the question is just whether entity.driver can even be a non-player objref
15:25 MTDiscord <luatic> I believe this showcases something else though
15:25 MTDiscord <luatic> Modders relying on playerrefs not changing during the session
15:26 MTDiscord <luatic> Hence storing the player instead of the player name
15:26 nemo42 joined #minetest-dev
15:26 MTDiscord <luatic> Some modders even compare players by reference xD
15:26 sfan5 if you have one ref it cannot reasonably expire
15:26 MTDiscord <luatic> Therefore, I believe the docs should guarantee this, as it also makes code a lot neater.
15:26 sfan5 (because why would it?)
15:26 MTDiscord <luatic> Theoretically, the engine might swap it out
15:27 sfan5 no?
15:27 sfan5 the userdata object itself cannot be changed
15:27 sfan5 only it's contents / what it points to
15:27 MTDiscord <luatic> I know
15:27 MTDiscord <luatic> That's the point, what if the engine decided to recreate it's internal player object, invalidating the obj ref mods hold?
15:28 sfan5 erlehmann: how do you know that those refs can be non-players? is it "gut feeling?"
15:28 MTDiscord <luatic> Listen, I just want a guarantee that player refs stay valid for the session duration xD
15:30 erlehmann sfan5 for the puncher case, i am pretty sure that non-player entities can punch others, right?
15:30 erlehmann firing an arorw on a travelnet box or something would punch it, no?
15:30 erlehmann arrow
15:30 sfan5 depends on the implementation
15:31 erlehmann yeah, depends. we have two ways forward: choose something incompatible and make sure it is not a problem in practice … or revert to the compatible API and discuss it whenever 6.0 is a thing
15:31 erlehmann i prefer the thing where we can stop worrying and just apply my patch
15:31 erlehmann and discuss other problems
15:32 MTDiscord <luatic> I hope that we will properly distinguish players by 6.0
15:32 erlehmann i actually hope not!
15:32 erlehmann i find it pretty useful to be able to have one code path for players and mobs
15:32 MTDiscord <luatic> not by, with*
15:32 erlehmann but then again i am the person who wrote code so that boats can enter minecarts, so …
15:33 erlehmann (the trick is to punch the minecart in the right direction when the boat goes forward)
15:33 MTDiscord <luatic> By distinguishing I mean inheritance
15:33 MTDiscord <luatic> Players could still be used as ObjRefs, but ObjRefs not as players
15:34 MTDiscord <luatic> So if you want MCL boats to be rideable by any nearby ObjRef, that still works and requires just one code path
15:34 erlehmann above everything else, i wish for minetest to never ruin existing setups except for security/crash/hang reasons – and then only as much as ncessary.
15:34 MTDiscord <luatic> In this one case, actually a Lua "quirk" is to blame (the overly permissive string metatable)
15:35 MTDiscord <luatic> for those who want strictness in a dev environment: you can do setmetatable(string, {__index = function() error"attempt to index a string value" end})
15:35 Pexin 0.4.x "we're not even 1.0, dont expect stability"    5.0 "WELP nevermind!"  haha
15:41 MTDiscord <Jonathon> Seems like erlehmann is determined to piss off/drive away the main dev behind minetest
15:42 unexploredtest[m joined #minetest-dev
15:42 MTDiscord <Jonathon> As if there wasnt already a lack of them
15:42 MTDiscord <josiah_wi> Agreed.
15:49 MTDiscord <Bastrabun> sfan5: re 11976 Here's what the profiler gives me: https://pastebin.com/UK6eDrQV
15:49 MTDiscord <Bastrabun> About 18 players results in 2022-01-25 15:58:29: INFO[Main]:   Server: map saving (sum) [ms]  . . . . . . .    1x  5860
15:52 erlehmann I just encountered a crash where a paleotest carnotaurus got punched by a non-player.
15:52 erlehmann The new API is so *fun*!
15:53 erlehmann and yes, it is because it assumes get_player_control() on the puncher
16:01 erlehmann jonathon, i am not determined to piss off anyone. which is why i made it as easy as possible this time to fix this bug.
16:04 rubenwardy could rename it to get_player_controls() and deprecate the singular form, which is gramatically invalid anyway
16:04 rubenwardy totally not confusing
16:09 erlehmann just so you know, the paleotest crash also makes worlds unusable. as soon as i rejoin, the dinos fight again.
16:13 MTDiscord <luatic> @Greens Sleep Paralysis Demon you're dinos are being broken
16:16 behalebabo joined #minetest-dev
16:22 behalebabo joined #minetest-dev
16:27 sfan5 @Bastabun and it freezes for about 5 seconds regularly right?
16:28 MTDiscord <Jonathon> @Bastrabun ^
16:30 MTDiscord <Bastrabun> It freezes in the interval of whatever I set server_map_save_interval to. If I leave it the default 5.3, we get freezes every 5.3 seconds, currently it's on 30 and we get freezes every 30 seconds.
16:46 v-rob joined #minetest-dev
16:46 sfan5 how long is the freeze itself?
16:51 MTDiscord <Bastrabun> That depends on the number of players and the value of server_map_save_interval
16:52 MTDiscord <Bastrabun> Roughly 30 players and server_map_save_interval 5.3 gives me a 2 to 3 second lag, while server_map_save_interval 30 gives me a 3 to 4 second lag.
16:58 Yad joined #minetest-dev
16:59 v-rob Sheesh, maybe we should invite Microsoft over to do our compatibility for us. Having to support undocumented behaviour that you're obviously not supposed to do...
16:59 MTDiscord <Bastrabun> This is what the log says over the past two hours: https://pastebin.com/0H5u1CU5
17:28 celeron55 v-rob: i think people are probably overreacting to this
17:29 celeron55 modders probably tried out if the result works for mobs when used like a table with true-ish and false-ish items, and it does, so they assume it returns such a table for mobs also
17:29 celeron55 turns out it's actually a string, but a string just happens to behave like one
17:29 celeron55 thus, changing it into actually being an empty table will work fine
17:32 erlehmann “will probably work out fine” is what got us into this mess
17:33 celeron55 not really
17:33 erlehmann well, the API was changed without even greping contentdb for its usage (which would have revealed that problem)
17:33 celeron55 you're all overreacting, basically
17:33 MTDiscord <Jonathon> When is he not?
17:34 rubenwardy yeah, I think modders will assume that this just returns {}
17:35 Krock get_player_by_name returns nil when there's no player
17:35 Krock the player control and information should do the same
17:35 MTDiscord <Jonathon> Minetest: consistently inconsistent
17:37 celeron55 Krock: arguably it can be different because it needs to return an object (of sorts)
17:38 celeron55 the rest are just values
17:38 MTDiscord <luatic> I consider {} and 0 a decent solution
17:38 celeron55 anyway, this is the wrong time to design this api
17:38 celeron55 this api was already designed. 8 years ago
17:40 celeron55 any energy you have for api design should be focused on those apis currently in waiting to be released as stable
17:41 Krock what was the previous behaviour? did it provide garbage values, or none at all?
17:41 celeron55 the empty string
17:42 celeron55 then sfan5 changed it to nil
17:42 celeron55 and it broke stuff
17:42 celeron55 2 weeks ago
17:42 erlehmann curiously, no one ever complained about that empty string. i mean, it's obviously garbage design. but it works.
17:42 celeron55 that's because the empty string looks like an empty table
17:42 Krock 🤦
17:43 Krock "" ~= {}
17:43 MTDiscord <luatic> not exactly, but due to the string metatable, as long as you don't try indexing it with "sub", "gmatch" etc it does
17:43 MTDiscord <luatic> {} ~= {} though
17:43 celeron55 yes not exactly. but you can even do # on it to count the items. and it says 0 like for an empty table
17:43 Krock fair point
17:43 celeron55 actually
17:43 erlehmann Krock so people are doing puncher:get_player_control().sneak in mobs that turn enemy when they are punched or node on_punch handlers
17:43 MTDiscord <luatic> I don't see why anyone would be calling # on a dict
17:43 celeron55 i think it would say 0 for the player table also as that's used as a dictionary
17:44 Krock well then {}  would be a saner option, provided that mods do not explicitly rely on this string bs
17:44 Krock erlehmann: yes, within callbacks the player object must be valid and contain this data
17:45 erlehmann Krock the thing is, non-players can also punch
17:45 MTDiscord <luatic> ^
17:45 erlehmann or be passengers in a boat, which is how the mcl thing crashed
17:45 Krock get_player_control() is undefined behaviour for non-players
17:45 MTDiscord <luatic> wrong
17:45 erlehmann it has been perfectly well defined in the code for a long time and was changed
17:46 MTDiscord <luatic> the docs say it's a "no-op"
17:46 MTDiscord <luatic> so yes, returning nothing (which is actually not the same as returning nil) is reasonable for a "no-op"
17:46 celeron55 i think basically everyone is agreeing on {} now
17:46 MTDiscord <luatic> yes
17:46 celeron55 so there's no need to discuss this more
17:46 celeron55 someone just needs to commit the patch
17:46 Krock oh right.  no-op would then indicate   return 0;  (i.e. no arguments, no action) ?
17:47 erlehmann i do not agree, because i am not in the mood to file another bug as 5.5.0 is released
17:47 erlehmann it will probably work out, but some mad person will have relied on this being a string
17:47 Krock celeron55: as a hacky solution, yes.
17:47 MTDiscord <luatic> then that's on them honestly
17:47 erlehmann does not matter who is at fault
17:47 celeron55 the api didn't say it's a string. you are supposed to file a bug at that point
17:47 erlehmann it literally does not matter who is guilty of shitty code, be it engine or mod devs. the users have crashes.
17:49 erlehmann will make sure that mineclonia does not crash with whatever 5.5 does anyway
17:49 celeron55 erlehmann: you're doing more bad than good to MT by draining the time from devs that have more productive use for the time
17:49 MTDiscord <Jonathon> ^this
17:49 erlehmann celeron55 i provided a solution and then everyone else had an opinion on a thing that does not hinder them. i will be silent.
17:49 erlehmann until the next breakage!
17:50 celeron55 it's good that you brought the bug up
17:50 celeron55 but as the core team is responsible for the solution, you have to give the core team the freedom to make the solution
17:51 erlehmann and sorry that i posted so much about how it is bad. i just really thing it has to be solved *somehow*, even if it is not my preferred solution. it seems you have found one.
17:52 celeron55 sorry for the shitty code made in 2012, i'm trying to not let it happen anymore 8)
17:53 celeron55 whether that's succesful, well, we'll see in 2020
17:53 celeron55 eh
17:53 celeron55 i mean 2030
17:54 erlehmann well … i doubt you can anticipate what someone else will find ugly years later. but if you ever come up with an API everyone likes, maybe ask zughy about it ;P
18:11 jordan4ibanez Hmm, perhaps you could preemptively break it to avoid future breakage?
18:40 JordanL2 joined #minetest-dev
18:47 BuckarooBanzai joined #minetest-dev
18:57 Guest99 joined #minetest-dev
18:58 Guest99 joined #minetest-dev
18:59 Guest99 joined #minetest-dev
19:21 v-rob joined #minetest-dev
20:06 proller joined #minetest-dev
20:08 nemo42 joined #minetest-dev
20:40 sfan5 I'll import weblate commits later and stuff so translators have a chance to translate before release
20:41 sfan5 @luatic how's the "send gui scale to server" PR going
20:41 v-rob joined #minetest-dev
20:52 MTDiscord <luatic> sorry, not going at all currently, 5.5 will probably have to do without it
20:58 sfan5 then so be it
22:05 v-rob joined #minetest-dev
22:20 sfan5 https://github.com/minetest/minetest/commits/ci translation commits, will push after build finishes
22:31 jordan4ibanez joined #minetest-dev
23:00 proller joined #minetest-dev
23:17 proller joined #minetest-dev

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