Time Nick Message 03:28 MTDiscord heh, how did that number ome up? 11:26 bebebeko Hey folks! tldr for my project i need some features in program, and i'm ready to sponsored these through bountysource, for example, https://github.com/minetest/minetest/issues/10593 At this moment the description looks ogly in my opinion. Could anyone suggest a way how i can improve it, or it's fine? 11:29 bebebeko this is my first experience with bountrysource, please don't judge me harshly ;-) 11:32 pmp-p hi bebebeko, there's not much to judge, as description of what you need is terribly incomplete is it client/server side ,static or dynamic (moving entities) ? 12:29 bebebeko pmp-p: thank! I updated the issue, could you please verify, maybe I miss smth? https://github.com/minetest/minetest/issues/10593 16:13 Krock > Then when the mods have loaded and the server is stuck, interrupt with Control+C and enter thread apply all bt. 16:13 Krock cool trick. I haven't used that in a while :D 16:20 Krock when is lua_isnil() not the same as lua_isnoneornil ? 16:21 rubenwardy when it is none 16:21 rubenwardy none means that the index doesn't exist on the stack 16:21 rubenwardy nil means that the index exists and is nil 16:21 rubenwardy in func(1, nil), index 2 is nil but index 3 is none 16:22 rubenwardy lua_isnoneornil should pretty much always be used 16:22 rubenwardy over isnone or isnil 16:22 Krock lua_isnil ensures that the arguments are provided, even if nil 16:22 Krock so in terms of solid API that's a safer approach 16:23 Krock perhaps 16:23 Krock after all it might not matter because mostly the code would attempt converting this non-nil value to a number, which return 0 16:24 rubenwardy it makes the C++ API act differently to a Lua one, and you'd want to throw rather than treating none as a non-nil 16:24 Krock that's what luaL_checknumber is for, no? 16:25 rubenwardy yes, which is better to use over lua_isnone or lua_isnoneornil 16:25 Krock thanks for the explanation 16:25 rubenwardy my point is if an argument is nilable, none should be treated like nil. And if it's not nilable, you can use check* 16:26 Krock so it's a question whether the arguments may be optional or not 16:26 Krock and whether they may be nilable 16:54 celeron55 i think there's a semantic difference between an optional argument and there being an option to pass something as nil 16:54 sfan5 rubenwardy: (re 10368) how about ensuring that either the formspec version is bumped or the protocol version? 16:55 rubenwardy it's weird from a Lua point of view though 16:55 sfan5 what I'm thinking of is that it's not necessary to bump the protocol version if the formspec version has been bumped for this version 16:55 rubenwardy the only way to tell from Lua is to do function(...) print(#{...}) end 16:55 celeron55 of course you can define a style where one or the other is not allowed 16:55 celeron55 and that's your convention then 16:56 celeron55 is it? 16:57 celeron55 in that case maybe it's better to not distinguish between them in C++ either 16:57 Krock set_string("test") is less obvious than set_string("test", nil) 16:58 Krock sometimes you want to enforce an argument to be provided 16:58 celeron55 i don't care what's used as long as it's used consistently 17:23 nerzhul is this me or celeron55 is now active as a coredev ? :D 17:33 rubenwardy I'll believe it when I see a PR for VAEs 17:33 rubenwardy out of the blue 17:33 rubenwardy tbh, that probably isn't the highest priority rn :D 17:42 celeron55 it would be so hacky you wouldn't accept it, trust me 17:43 rubenwardy :D 17:50 zughy[m] so wait, should I address Krock's reviews or not? About #10564 17:50 ShadowBot https://github.com/minetest/minetest/issues/10564 -- Fix ObjectRef crashes due to lua_isnil() by Zughy 18:02 Krock zughy[m]: perhaps note what was the idea of doing these modifications? perhaps I missed an important part that's not mentioned 18:56 zughy[m] Krock: ruben suggesting to change everything with isnoneornil supported by Desour https://github.com/minetest/minetest/pull/10564#issuecomment-717116073 19:23 Krock apparently I'm blind. somehow I only read the first few posts. it's a design decision whether lack of arguments is counted as "nil" too 19:24 Krock my opinion is towards lua_isnil, also because a large part of the code uses that check. if other developers decide to go with isnoneornil, then please adjust the documentation accordingly 19:32 zughy[m] yes, but they prevented crashes declaring the variable and its value first (i.e. int x = 0) and then checking if the index in the stack was nil. If it wasn't, they override x 19:33 zughy[m] imho, using is_noneornil makes instantly explicit to whoever wants to contribute that none and nil are not the same thing in lua 19:36 zughy[m] also, an exception are tables: when getting the field, lua_isnil works perfectly to check whether it exists 19:37 zughy[m] that's why I didn't changed the whole set_sky/moon/etc. checks 19:37 zughy[m] *change 19:40 sfan5 functions that have optional arguments should use lua_gettop or lua_isnoneornil 19:41 sfan5 functions that don't have that shouldn't be using lua_isnil, yet it seems many do 19:41 sfan5 since this is kind of a mess I suggest doing the changes needed to restore compatibility and leaving the rest alone 19:45 sfan5 in fact it almost seems like a good idea to revert the cleanup since who knows how much time has been wasted discussing and doing things that worked before and didn't bother anyone 19:45 sfan5 (don't get me wrong I'm not actually in favor of a revert but I am annoyed at all the time and discussion that is now spent on this) 19:49 zughy[m] (sad thing: the bridge is slow, I'm looking at your replies from the IRC log) 19:49 zughy[m] I don't agree with the "it works, don't touch it". That code was a mess, like, a huge one. You may understand it as you've been cruising through it for years, but as a newcomer it's just a headache 19:49 zughy[m] also: according to the docs, set_animation_framespeed should be 15.0 by default, but from l_object.cpp that's now what it happens. It pushes the value and a true value when there is a number and a false one where is none. Is that... normal? 19:50 sfan5 lots of methods have an undocument boolean return value that indicates success 19:51 sfan5 and regarding the default: the docs are lying and there is no such default 19:52 sfan5 ..perhaps that's supposed to be the default if not set, but the method argument is definitely mandatory 19:53 rubenwardy yeah, that's the default if you don't call `set_animation_framespeed` 20:02 pgimeno the only way to tell from Lua is to do function(...) print(#{...}) end <-- nooo! # is not guaranteed to work with embedded nil values. The way to do with lua is using select('#', ...) 20:09 zughy[m] ok, I'll fix it later 20:12 pgimeno I think the right thing to do in general, is to use isnoneornil when there's no default value for the parameter but nil is a valid value, and isnil when there's a default and it is something other than nil. 20:14 rubenwardy the right thing to do is not care about nil vs none in the C++ api 20:15 rubenwardy because Lua itself rarely cares about nil vs none 20:17 pgimeno sorry, my experience is with the Löve API, e.g. https://love2d.org/wiki/love.graphics.draw - values in parentheses are defaults 20:22 pgimeno it is rare that nil values are accepted as distinct parameters, actually 20:23 pgimeno here's a somewhat delicate case: VoxelManip:write_to_map(bool), defaults to true - what should nil do? 20:25 pgimeno IMO VoxelManip:write_to_map(nil) should be treated as false, distinctly from VoxelManip:write_to_map() 20:47 zughy[m] PR is ready if you want Krock 20:48 red-001 btw if you want me to I can change the function to pascalCase 20:48 red-001 camelCase* 20:48 red-001 for #10589 20:48 ShadowBot https://github.com/minetest/minetest/issues/10589 -- Block attempts to connect to the client. by red-001 20:49 Krock will merge #10589 in 10 minutes 20:49 ShadowBot https://github.com/minetest/minetest/issues/10589 -- Block attempts to connect to the client. by red-001 20:50 Krock zughy[m]: looks good, didn't test yet 20:51 Krock strictly spoken the lua_api.txt would now need an update to properly state optional arguments, though. 20:52 Krock will test tomorrow 21:20 Krock merging... 22:07 nore hmmm, I can't find the place where we said why LuaJIT was dangerous to use in (SS)CSM? 22:08 nore also, does anyone want to review #10451? (at least reviewing the code, I'll work on testing a bit more) 22:08 ShadowBot https://github.com/minetest/minetest/issues/10451 -- Client-side translations: gettext support by Ekdohibs 22:10 nore btw, another question about this PR: it does require a translation update in all languages if we want to get plurals working, maybe weblate changes should be merged? or the PR merged, weblate updated, and then getting all translations from weblate after I update them all with the translation of the plurals? 22:28 red-001 I think it's just a generic concern about JIT implementations generating code and being more complex -> more edge cases that code result in exploitable bugs 22:29 red-001 s/code/could