Time Nick Message 09:35 rubenwardy #7202 09:36 ShadowBot https://github.com/minetest/minetest/issues/7202 -- Add player:get_meta(), deprecate player attributes by rubenwardy 09:36 nerzhul pool ungeneric player attributes :) 09:38 nerzhul rubenwardy, as you removed my backend, are those meta migarted ? 09:38 rubenwardy yes 09:39 rubenwardy it does m_meta.setString instead of setPlayerAttribute 09:39 nerzhul you wrote automagically imported, how ? 09:39 rubenwardy https://github.com/minetest/minetest/pull/7202/files#diff-989a983e9226307c290b9e43a45a9dfeR521 09:40 nerzhul i added some comments, if you can add an integration test in minimal 09:40 rubenwardy as far as testing, I've loaded a world which used player attributes and it retained the data 09:40 rubenwardy I would like to add integration tests however 09:40 nerzhul oh right, you keep the backend storage 09:41 nerzhul if i remember set_player_attribute is somewhere in minimal :) 09:43 rubenwardy what happens if you get a pointer from a reference? 09:44 nerzhul example ? 09:44 rubenwardy cool, nvm 09:44 rubenwardy int a; foo(a); void foo(int &a) { int *b = &a; } 09:45 rubenwardy SO says it works as a pointer to the original 09:45 nerzhul it will work until a is removed from stack and it will crash 09:45 nerzhul (if a was on stack and not heap) 09:46 nerzhul it's very ugly. It's good to keep stack with stack and heap with heap :) 09:47 rubenwardy see my question in the OP 09:47 nerzhul OP ? 09:47 rubenwardy basically, I'm wondering what to do with PlayerMetaRef for future proofing 09:47 rubenwardy opening post 09:47 rubenwardy as in the future we may want to pass in a meta object for an offline player 09:47 rubenwardy so we need to reference count and unload when no PlayerDataRefs point at it any more 09:47 nerzhul i see 09:48 rubenwardy it should probably get the meta from somewhere else than SAO in that case 09:48 nerzhul you should not remove it from lua 09:48 rubenwardy like, one function offline or not 09:48 nerzhul it's PlayerSAO responsibility 09:48 rubenwardy ? 09:48 nerzhul your problem is the meta removal when metaref is gc ? 09:48 nerzhul (core side i mean) 09:48 rubenwardy yeah, to stop memory leaks 09:49 nerzhul remove all lua related stuff on GC, but not the PlayerMeta 09:49 nerzhul which is owned by player sao 09:49 rubenwardy in the future I'd like to add minetest.get_meta({ type = "player", name = "celeron44" }) is what I'd like to add 09:49 nerzhul it will be reclaimed when SAO will be removed 09:49 rubenwardy no, it won't be in that case ^ 09:49 rubenwardy as there won't be a SAO 09:49 rubenwardy this is for a future PR 09:49 rubenwardy celeron44 may not be online 09:50 nerzhul then if not loaded, query the db 09:50 nerzhul and keep offline meta somewhere 09:50 rubenwardy actually 09:50 rubenwardy I guess the PlayerMetaRef should own the meta in that case 09:50 rubenwardy and just notify and changes 09:50 rubenwardy *any 09:50 nerzhul (in the Lua heap + GC it sounds reasonable) 09:51 rubenwardy cool 09:51 nerzhul one of our problem is our core objects are decoupled from lua objects 09:51 rubenwardy there's just the issue that it would do a database update everytime something changes 09:51 nerzhul Lua heap + GC for offline usage, but there is some refactor 09:51 rubenwardy so there should be some buffer somewhere maybe 09:51 rubenwardy or just not worry about that 09:51 rubenwardy yeah 09:51 nerzhul yes, and it can be expensive. Currently it's done by the player SAO save timer 09:51 rubenwardy writes shouldn't be too frequent when the player is offline 09:52 nerzhul it depend on the manipulation of the mod :) 09:52 rubenwardy would be good to have a buffer anyway 09:53 rubenwardy this calls for a shared PTR for me, to remove the need to copy to core every time something changes to put in a buffer ready to be saved next tick 09:54 nerzhul you can use a shared_ptr then, share if between meta ref and player, but remember you will keep the meta in lua memory without linkback to core save in that case 09:54 nerzhul because save is managed on SAO :) 09:54 rubenwardy yeah 09:55 rubenwardy future PR though 09:56 nerzhul i should ocntinue CSM mod sending PR... i just get time to rebase it yesterday 09:56 nerzhul and i hope during my devel time i will not find more things to fix for this PR :p 10:04 rubenwardy lol, found a bug 10:04 rubenwardy you never unset the modified state of player attributes 10:04 rubenwardy so it would cause players to be saved everytime 10:04 nerzhul arf :) 10:07 rubenwardy could be the cause of #6608 10:07 ShadowBot https://github.com/minetest/minetest/issues/6608 -- Slow players.sqlite due to many players.sqlite-journal creations 10:07 rubenwardy do we still load all players into memory? 10:07 rubenwardy or just online ones 10:07 rubenwardy (please say the latter) 10:09 rubenwardy really wish Minetest uses Sol2 10:09 rubenwardy *used 10:09 rubenwardy it makes the Lua API so much nicer 10:09 rubenwardy static functions suck 10:11 nerzhul just online 10:11 nerzhul (hopefully) 10:12 nerzhul sol2 ? 10:12 nerzhul i think we can refactor our lua stack. On a side project i have more nicer Lua implementations, lighter implemenations :) 10:12 rubenwardy maybe using Sol2 is goind too far 10:13 rubenwardy but it would be nice to add some magic to allow using instance methods 10:13 rubenwardy and automatically getting the object 10:13 rubenwardy not sure how Sol2 does that 10:13 rubenwardy you add clases to Lua at **runtime** in sol2 10:14 rubenwardy so it doesn't use any compiler magic it seems 10:14 nerzhul it's difficult to make minetest better as some things are very monolithic but i hope on each release we can make things move :) 10:14 rubenwardy you do need to list the methods to expose 10:14 rubenwardy yeah 10:17 nerzhul maybe i should backport one class to MT to use C++ templates to read and write structures properly, it should be nicer cod 10:17 nerzhul https://gitlab.com/WinterWind/WinterWind/blob/master/src/lua/luahelper.cpp 10:24 rubenwardy nerzhul: tests added 10:24 rubenwardy nerzhul: which was good, because I forgot this: https://github.com/minetest/minetest/pull/7202/files#diff-f09c82748458a8b3fd8fd9762a8723a8R103 10:24 rubenwardy originally 10:33 rubenwardy new issue: #7203 10:33 ShadowBot https://github.com/minetest/minetest/issues/7203 -- Store weak pointers to things in Lua references and crash gracefully 10:35 nerzhul sync issue between lua state and core, yes, our problem of decouples stacks 10:39 celeron55_ i used luabind's non-boost port in buildat, it was fairly enjoyable 10:39 celeron55_ luabind-deboostified it's called 10:40 rubenwardy is luabind the old one? 10:40 rubenwardy I tried that, but then rewrote the code into Sol2 10:40 rubenwardy I think I tried that 10:40 * rubenwardy chesk 10:40 rubenwardy ah no 10:40 rubenwardy I used LuaBridge 10:41 rubenwardy https://sol2.readthedocs.io/en/latest/benchmarks.html 10:42 rubenwardy sol2 is faster than luabind 10:42 rubenwardy but still slower than pure Lua, ofc 10:42 rubenwardy oddly it's faster than pure Lua at things like multiple returns 10:42 rubenwardy not sure how 10:44 rubenwardy here's my version of ObjectRef in my project: https://gist.github.com/rubenwardy/3ecb406a94980d7a71ff4e07107747a0 10:44 rubenwardy line 10 of the cpp includes the sol registration 10:45 rubenwardy given how important scripting is in Minetest, I don't think it's worth the small performance drop 10:45 celeron55 that's pretty much exactly what the usage of any modern C++ lua wrapper will look like 10:46 rubenwardy yeah 10:47 rubenwardy argh, travis takes so long 10:48 rubenwardy probably better to add a python API instead 10:48 * rubenwardy is joking 10:51 rubenwardy RE: licenses, if I make a new lua file using the standard skeleton, is it right to create celeron55 as the original author at the top? 10:51 rubenwardy I guess it is, as 80% of the file is just copy pasta 10:56 nerzhul rubenwardy python is slower than lua 10:57 rubenwardy It's more useful 10:57 rubenwardy Especially in education 10:58 rubenwardy Better to leave for a mod though, it's possible 11:20 rubenwardy nerzhul: how do I disable lint for a section 11:20 rubenwardy it's obviously wrong 11:20 rubenwardy https://travis-ci.org/minetest/minetest/jobs/362558845#L611 11:21 celeron55 clang-format really is mind-bogglingly bad 11:23 rubenwardy can we just remove it? 11:23 rubenwardy it really should be a separate check 11:24 rubenwardy which doesn't effect the state of the commit 11:24 rubenwardy just puts a warning in the thread (maybe with a comment) and a link to things that it suggests changing 11:25 rubenwardy like, warning rather than error 11:25 rubenwardy or alternatively it could be replaced or configured better 11:29 rubenwardy anyway, apart from that the PR is ready 11:48 rubenwardy #7204 11:48 ShadowBot https://github.com/minetest/minetest/issues/7204 -- Add more table helpers by rubenwardy 12:08 nerzhul rubenwardy: // clang-format off => // clang-format on 12:09 rubenwardy thanks 12:10 nerzhul i think having a travis bot which post interesting issues in the github post can be nice yes. clang-format is not as bad as some concurrents, it's just a finite state program and it doesn't have all cases. But at least it permit to do interesting thing on PR like review the feature/fixes instead of commenting all standard coding errors. it permits to earn many review time and let PR owners fix without our advice, except in some rare 12:10 nerzhul we never read warnings, else why do we got some issues for compilation warning whereas they were on some travis builds :) 12:11 nerzhul at least we should update clang-format to v6 (i don't succeed to compile with clang 6 on travis, only more recent ubuntu version and other linux distros) 12:14 rubenwardy should comment on the issue to alert of warnings 12:14 rubenwardy but shouldn't give an X 12:16 nerzhul i'm pretty sure we will loose some time, at least to develop and maintain the bot to read logs instead of just pushing errors, but anyway i tend to prefer to not comment myself on all coding errors or code style issues 12:16 rubenwardy no, automatically comment 12:17 rubenwardy although if a check is separate to a commit status 12:17 rubenwardy then you could just set it so it's a separate check without effecting the status of a commit 12:17 rubenwardy having this crappg linter is more damaging than good 12:29 Krock rubenwardy, by the way. you forgot ".com" in the files itemstackmetadata.* 12:30 rubenwardy Lol 15:30 srifqi rubenwardy: I found the cause of the bug on weird virtual joystick behavior. 15:30 srifqi wrong type data :") 15:30 srifqi data type* 15:32 rubenwardy nice! 16:13 paramat will merge #7192 in 5 mins 16:13 ShadowBot https://github.com/minetest/minetest/issues/7192 -- Biome API / cavegen: Add definable cave liquid for a biome by paramat 16:20 paramat merging .. 16:22 paramat done 16:28 celeron55 chatzilla... fedora core 21? that's so old it's cute 16:29 celeron55 entertaining quit messages 16:38 * twoelk had played with xul apps and the xulrunner quite a lot - gotta redo a bunch of inhouse intranet apps now 16:39 paramat i'm getting a warning in latest master on entering a world: "WARNING[Server]: Trying to update non-existent object: 0" 16:39 rubenwardy is that Core 2.1? 16:39 rubenwardy paramat: probably related to #7199 16:39 ShadowBot https://github.com/minetest/minetest/issues/7199 -- Bugs regarding objects 16:45 paramat ok will mention it in that 17:27 paramat #7208 will merge later, trivial 17:27 ShadowBot https://github.com/minetest/minetest/issues/7208 -- Zoom adjustDist(): Improve variable name by paramat 18:55 paramat #7209 is fairly trivial, agreed with mapgen creator and tested. will merge in a few hours if no objections 18:55 ShadowBot https://github.com/minetest/minetest/issues/7209 -- Mgcarpathian: Remove insignificant 'base' noise variation by paramat 19:02 paramat merging #7208 in 5 mins 19:02 ShadowBot https://github.com/minetest/minetest/issues/7208 -- Zoom adjustDist(): Improve variable name by paramat 19:13 paramat merging 19:16 paramat done 20:44 paramat merging #7209 in 5 mins 20:44 ShadowBot https://github.com/minetest/minetest/issues/7209 -- Mgcarpathian: Remove insignificant 'base' noise variation by paramat 20:51 paramat merging .. 20:53 paramat done 21:15 paramat rubenwardy everyone's neutral on this, could you add your opinion? game#2095 i'm tempted to just close it 21:15 ShadowBot https://github.com/minetest/minetest_game/issues/2095 -- Snowblock: propagate light like snow slab and ice by paramat 21:38 Gael-de-Sailly paramat: I've some questions about the potential mapgen presets feature 21:39 Gael-de-Sailly I originally wanted to create a GUI for creating/editing mapgen presets 21:40 Gael-de-Sailly but I'm wondering where the files could be stored 21:40 rubenwardy client, probably 21:40 rubenwardy if they're modifiable 21:40 rubenwardy builtin otherwise 21:40 Gael-de-Sailly yeah but I'm not sure it deserves a dedicated directory in the client dir 21:41 Gael-de-Sailly my idea was builtin for default ones, and a new dir for custom ones 21:43 Gael-de-Sailly (next to "mods", "clientmods", etc.) 21:43 twoelk will custom games or mods be able to use the GUI? 21:43 Gael-de-Sailly it would be on the mainmenu 21:44 Gael-de-Sailly on world creation 21:45 Gael-de-Sailly you're talking about Lua mapgens? 21:45 twoelk yeah 21:45 Gael-de-Sailly not trivial, because Lua mapgens are not considered as mapgens by the core 21:47 twoelk guess the lua mapgens would have to provide some sort of info which settings can be tweaked 21:48 twoelk and on worldcreation mt would have to check if any enabled mod offers such info 21:48 Gael-de-Sailly yes, I'll think about that 21:48 Gael-de-Sailly but it's not my first concern for now 21:49 paramat ugh not for lua mapgens 21:49 paramat lua mapgen mods can provide their own settings options code 21:49 twoelk hm tweakable mods in the main menu before worldcreation - sounds like fun ;-P 21:51 Gael-de-Sailly when will 0.5 be released? 21:53 paramat files for mapgen presets? seems like builtin is the place 21:53 * twoelk muses of being able to provide some coordinates for mt-meru from within mt just before world creation or even when starting an allready existing world 21:53 paramat not sure, months away 21:54 Gael-de-Sailly I heard about April 15 or like, but may be about something else 21:54 paramat twoelk that can and should be done by the mod itself, a mod can add settings to 'advanced settings' 21:55 paramat nooo april 15th is 0.4.17 21:55 Gael-de-Sailly ok 21:57 * twoelk needs to investigate which mods actually add to the advanced settings 21:57 paramat not many do 21:57 paramat MTG does 21:57 twoelk aand goodnight :-D 21:57 Gael-de-Sailly builtin is the place for mapgen presets, but if I want the user to be able to create/edit them, there must be in a new dir on client 21:59 Gael-de-Sailly i guess the settingtypes file is particularly tedious to fill for modders, however can't be made simpler 22:14 paramat i don't see a need for users to create or edit the presets, they can configure mapgens already using mods 22:16 paramat settingtypes isn't tedious to use, it's simple, it's just a feature many don't know about or haven't discovered yet 22:17 rubenwardy It's not user friendly for stuff like map configs 22:18 rubenwardy People just want to have a slidder for water height, hilliness, resource scarcity and such 22:18 rubenwardy And not give a shit about noise 22:19 paramat yes i know, that's why this feature is such a good idea 22:21 paramat i was talking generally about settingtypes, not referring to noises, and in the context of settings for lua mapgens which is not what this feature is for 22:23 paramat wil test #7212 and if ok will merge later, trivial 22:23 ShadowBot https://github.com/minetest/minetest/issues/7212 -- Mgcarpathian: Fix spawn level calculation by paramat 22:24 Gael-de-Sailly I was answering to two separate discussions, maybe I was confusing 22:25 Gael-de-Sailly my project is not about usage of settingtypes by mods 22:32 paramat yes i know :] 22:45 paramat 7212 tests ok, will merge after travis 23:08 paramat merging 7212 23:11 paramat done, back to 80 23:14 [k00l]shamoanjac why does ServerThread::run() return a nullptr?