Time Nick Message 07:39 SFENCE When testing in iPhoneSimulator, I see crazy error. 07:42 SFENCE When I for example select game/mod to be install, it causes error in https://github.com/luanti-org/luanti/blob/b1ed8f25cefbf96e29519fc516f2f92b64ed4d24/src/gui/guiFormSpecMenu.cpp#L3357-L3365 07:45 SFENCE https://pastebin.com/xTAAZVDE -> SIGABRT 07:52 SFENCE Looks to be joined with the situation, when some buttons, for example, is removed after clicking on them. 11:54 sfan5 will push https://github.com/luanti-org/luanti/commit/fc363085dd46330908b3a485dbe5bd7adfcc91b8 in 20m or so 12:31 Desour SFENCE: that lambda is not a strict order, i.e. gui elements without spec are not < than any other elem (so equal to all if you assume a < b && b < a ==> a == b) 12:34 Desour * !(a < b) && !(b < a) ==> a == b 13:09 sfan5 quick statistic on Luanti 5.15 clients seen by the server list https://0x0.st/PchB.txt 13:12 SFENCE Desour: so, any idea why gui elemenet without spec come to the sort function? 13:12 SFENCE Desour: it is nothing what I changed to support iOS. 13:15 Desour SFENCE: i don't know/remember how the spec thing works. but the reason that iOS crashes there is probably that it does more checks there, at least that is what it looks like ("strict_weak_ordering_check.h") 13:17 Desour if elems w/o spec weren't supposed to be there, there would be no null checks 13:18 Desour (fixing should be straight forward btw. (just use default prio for spec-less elems, or make them smaller than all elems with spec)) 14:02 SFENCE Desour: thanks for help, looks like I succesfully fixed that 14:03 Desour I'm glad it was helpful :) 15:50 MTDiscord it looks like, while our rotations and our coordinate system are mostly left-handed, our cross products are right-handed. 18:30 MTDiscord didn't we have an issue for a compatibility layer / API levels? i swear we've talked about this before 18:30 MTDiscord right now what i'm thinking is this: there are some functions i want to discourage the use of in new code, but their use is widespread so a deprecation + warning for old code seems excessive. 18:41 rubenwardy We talked about this irl during fosdem 18:42 sfan5 we did but I'm wondering if this can work in practice because we have a shared lua env 18:45 rubenwardy Back in 2013, Shadowninja or sapiar made a PR that gave each mod a lua environment with export functions to share mod API tables. This would have been quite good for security issues we're having with trusted mods, could have set API level in mod.conf for each 18:47 MTDiscord rubenwardy: that too, but didn't we also have an issue for it? 18:47 MTDiscord i think it's possible, and even necessary, to do this without any messing with envs, at least for now 18:48 MTDiscord especially as we have many methods, and will have even more in the future, and those are tied to the object, not the environment 18:48 rubenwardy It can be done with locals like. Local api = core.get(5) 18:49 MTDiscord yeah but i don't think there's really a convenient way to do it with objects 18:50 MTDiscord the semi-hacky thing that was on my mind was to look at the caller on the stack and see what API level they have set. and depending on that, log a deprecation warning / error, or do nothing if they don't care about using old and discouraged APIs. 18:50 MTDiscord let's make it concrete, now that i introduce proper rotation APIs, i want to discourage vector.rotate for example, but i would expect that function to have widespread use. 18:51 MTDiscord so i don't want to outright deprecate it. i don't want to break mods unnecessarily if we can keep them running on inconsistent conventions. 18:52 MTDiscord at the same time, i don't want anyone who's writing a new game or mod to be bitten by these functions. 18:52 MTDiscord in any case this requires some lengthier discussion, hence the need for an issue 18:52 MTDiscord could play into the engine "supporting" min/max versions that cdb already does 18:52 MTDiscord environments are a big part of it and could already improve the situation a lot presumably 18:55 MTDiscord https://content.luanti.org/zipgrep/3c7bb85f-cef9-416a-9a7e-4d4e569950c3/ 18:59 MTDiscord thanks for the zipgrep. those are quite a few packages. 19:02 sfan5 rubenwardy: unless you add something IPC-like, export tables are just an usability thing 19:02 sfan5 in other words, they don't really prevent anyone from touching other people's stuff 19:04 sfan5 we could opt to do the backtrace trick for deprecation warnings only, I think that'd be okay 19:05 sfan5 I guarantee that trying to tie API behavior to which mod shows up in the backtrace will sooner or later end up in a spectacular mess that is impossible to untangle 19:06 MTDiscord don't worry, the plan so far is just for warnings 19:06 sfan5 so far ;) 19:11 MTDiscord don't worry, the plan so far is to stick to the plan :p 19:12 MTDiscord anyhow do we have something established for pure lua benchmarks? 19:13 MTDiscord (i could shove it in devtest, or i could shove it in the C++ benchmarks, but neither feels really appropriate) 19:14 sfan5 make it a devtest thing imo