Time Nick Message 00:04 est31 hmmmm, time to look at one of these: https://github.com/minetest/minetest/labels/Needs%20second%20review 01:08 paramat #2702 i'm considering making 'ignore' walkable, to stop item- and node- entities falling through it at the bottom of the world, or if falling a long distance into an ungenerated chunk and becoming buried. any problems with this idea? 01:08 ShadowBot https://github.com/minetest/minetest/issues/2702 -- Bottom of the world weirdness 01:09 est31 isnt it already 01:09 est31 I mean you can walk on ignore 01:09 paramat also considering making 'air' not ground content so that caves do not waste time replacing air with air 01:09 est31 at least client side 01:09 paramat yes it's impassable but, link coming.. 01:10 paramat https://github.com/minetest/minetest/blob/master/src/nodedef.cpp#L518 01:11 paramat walkable = true should stop entities passing through 01:13 paramat https://github.com/minetest/minetest/blob/master/builtin/game/item_entity.lua#L159 code was added to stop item-entities, but falling lua still needs a fix 01:44 hmmmm paramat: setting air to air doesn't really take up any cpu time 01:45 est31 yea thought that too but thought there might be something I overlook 01:45 hmmmm est31: #1176, you +1ed? 01:45 ShadowBot https://github.com/minetest/minetest/issues/1176 -- Add get_player_velocity() method 01:45 hmmmm the server doesn't track player velocity 01:46 hmmmm the code looks alright, as long as you don't know the particulars of how minetest works. that code actually does nothing useful. 01:46 hmmmm did the guy who made the PR even test it?? 01:46 est31 they said it works with a separate server 01:46 hmmmm "a separate server"? 01:46 est31 they said they tested it with multiple (3) connected clients 01:47 est31 but yea I've heard the server doesn't return the velocity 01:47 est31 err track* 01:52 hmmmm right, so what are they aiming to accomplish with that code? 01:54 est31 adding the callback 01:55 est31 but you are likely to be right 01:55 est31 because I never see the speed set outside localplayer.cpp 01:55 est31 yes it is set in player.cpp 01:55 est31 but only for acceleration 01:56 est31 ah sorry 01:56 est31 it is calculated 01:56 est31 https://github.com/minetest/minetest/blob/bc55ef337cc83a5c31d4fdafba352a7a26921900/src/network/serverpackethandler.cpp#L825 01:56 est31 "calculated" 01:56 est31 as it seems its calculated client-side 01:56 est31 then sent to the server 01:56 hmmmm right but the problem is that it's so unreliable 01:57 est31 and then applied 01:57 est31 yes, there is no verification at all 01:57 hmmmm because of network jitter 01:57 est31 and that 01:57 paramat hmmmmm yeah. cavegen actually now checks for air to avoid reaplacing it, that check could be absorbed into the 'ground content' check for another small gain, so i'll go ahead with that 01:58 hmmmm i'd rather ask the guy with the PR what exactly he's doing and if this patch actually makes a difference 01:58 est31 asking for usecases? 01:58 hmmmm holding off on another +1 01:58 est31 good idea 01:58 hmmmm yes... 01:58 hmmmm dare I ask somebody for their usecase when they propose to add an API only useful to them for their own private reasons? 01:59 est31 you shouldn't do any custom gravity calculations 01:59 est31 thats right 02:00 est31 or other things that influence the real world 02:00 est31 but you could for example use it for some visualisation 02:01 est31 I'd have been more sceptical when there were a set_player_velocity method 02:01 est31 because then we enter dangerous territory 02:06 hmmmm #1748 looks good to me, aside from some nitpicky style issues 02:06 ShadowBot https://github.com/minetest/minetest/issues/1748 -- Add lua errors to error dialog by rubenwardy 02:06 est31 (*error) = ? 02:07 hmmmm yeah 02:07 est31 if(!mod 02:07 hmmmm yeah 02:07 est31 *error=NULL) 02:07 hmmmm also a line in the .h is way over 80 columns 02:07 est31 ah 02:07 est31 yea 02:07 hmmmm would appreciate if the error parameter was renamed error_msg or something 02:07 est31 makes sense 02:08 hmmmm allocating and then copying a std::string for such a mundane task seems kinda eh 02:08 hmmmm you never see functions follow that pattern of bool foobar(params, std::string *error_msg) { .. 02:09 hmmmm usually for error returning functions they'd return an integer that's an index to the particular error or 0 on success 02:09 est31 yea 02:09 hmmmm or in the case of a boolean return value it'd be true on success, false on failure, and then errno would be the specific error, and then strerror would be the textual description 02:09 est31 but here we get the error string from lua 02:09 hmmmm right 02:10 hmmmm how can this be made more uh... 02:10 est31 and it has more information than just "LUA_PARSER_ERROR" 02:10 hmmmm what's the term i'm looking for 02:10 hmmmm return a const char * 02:10 est31 C has this limitation, where you can only return a single value 02:10 hmmmm 0 (NULL) on success 02:10 hmmmm pointer to the error string on failure 02:10 hmmmm ? 02:11 hmmmm std::string error_msg; 02:11 hmmmm if (!loadMod(..., &error_msg) { 02:11 hmmmm vs. 02:11 hmmmm const char *error_msg = loadMod(...); 02:11 hmmmm if (error_msg) { ... 02:11 hmmmm what looks better? 02:12 est31 we really only return false if we have a string 02:12 est31 so its ok 02:12 est31 both look good 02:12 hmmmm so then just leave it as-is 02:12 hmmmm too minor of an issue to be worth changing 02:12 hmmmm not even issue 02:13 est31 you want to merge it? 02:13 hmmmm you do it 02:14 hmmmm christ, every time i look at particle-related code it burns my eyes 02:15 hmmmm nothing like a big if/else if chain for comparing strings when clearly an enum would've worked better instead along with enumToString() 02:15 hmmmm :| 02:15 est31 heh 02:15 est31 horrible 02:16 hmmmm oh ew 02:16 hmmmm in fact no, this guy never heard of get*field() functions apparently 02:16 hmmmm that's what that piece of code is actually doing 02:17 hmmmm i really wish i looked closer at the particlespawner code. 02:17 hmmmm i really really do. 02:18 hmmmm it was merged at a point in my minetest career where I figured that I should make my standards for code submission more relaxed 02:18 hmmmm big mistake 02:18 est31 better having something broken than not having it at all 02:18 hmmmm ha 02:18 hmmmm really now 02:19 hmmmm i totally disagree with that from a philisophical standpoint 02:19 hmmmm i'd rather not erode minetest's image any more than it needs to as a bug-ridden, poor quality, excuse of a minecraft clone 02:19 paramat hmmmmm, agreed 02:20 hmmmm also bad code can cause problems later on when other developers go to look at it 02:20 hmmmm or modify something 02:26 est31 btw why return const char * 02:26 est31 from how I see it, we have to return char * 02:26 hmmmm you're acutally doing that? 02:26 est31 because otherwise we cant free it 02:27 hmmmm est31: http://lua-users.org/lists/lua-l/2015-04/msg00015.html 02:27 hmmmm you don't need to free it, lua does 02:28 hmmmm doesn't lua_tostring return const char *? 02:28 est31 so either we use it immediately, or forget about it 02:28 hmmmm and i thought we decided it's not worth changing that 02:28 est31 ok 02:28 est31 not worth adding that as comment and stalling pr merging 02:37 est31 dammit sth works wrong 02:38 hmmmm ? 02:38 est31 program crashes at startup 02:38 est31 lemme stash and try whether its me 02:40 est31 ah dammit 02:40 est31 we do lua_pop 02:40 est31 then lua gc sets in 02:40 est31 and then 02:40 est31 yea 02:40 est31 perhaps dunno 02:40 est31 but there is no error 02:42 est31 hmmmm, what am I doing wrong? https://github.com/est31/minetest/commit/bc8da355698dbf7ec04057f47652a56ed3005661 02:42 hmmmm ehh 02:42 hmmmm you shouldn't bother making that one change 02:42 hmmmm I like the old return value better 02:44 est31 still I wonder what the problem is 02:44 est31 whatever 02:44 est31 I'll push it without improvements 02:44 hmmmm i dunno 02:44 hmmmm oh i se 02:44 hmmmm because the error message gets popped from the stack right away 02:45 est31 yes that makes total sense 02:45 est31 but there is no error 02:45 hmmmm so you're not able to return the raw pointer of it 02:46 hmmmm hrm, i don't know 02:47 hmmmm i can't see a reason why that would crash on success 02:52 est31 about #2740 and #2592 02:52 ShadowBot https://github.com/minetest/minetest/issues/2740 -- Fix red screen when damage is disabled by SmallJoker 02:52 ShadowBot https://github.com/minetest/minetest/issues/2592 -- ignore lava damage, fall damage and drowing if damage is disabled by HybridDog 02:52 est31 I think paramat is right 02:52 est31 how long will it take to fix 02:52 hmmmm what did paramat say 02:53 est31 "Hmmmm or Zeno will soon fix this, so this should be closed." 02:53 est31 to both 02:53 est31 both address same issue 02:53 hmmmm in both very roundabout ways 02:53 hmmmm the solution is quite simple 02:53 hmmmm i'll get it yeah 02:56 hmmmm nice 02:57 hmmmm i have to figure out breakage in the freebsd build first 02:57 hmmmm iconv: no matching function for call to libiconv 03:00 est31 the nrz buildbot works well 03:00 est31 iconv: 03:00 est31 I did the iconv commit 03:06 paramat cool 03:07 hmmmm freaking glib 03:07 hmmmm this is going to break my system. 03:08 est31 even ulibc has iconv 03:08 est31 and it has u for µ 03:10 paramat (oops 2740 was already closed, removing comment) 03:12 hmmmm oh man.. 03:12 hmmmm i have no idea how to fix this 03:14 est31 thats bad 03:14 est31 iconv is missing entirely? 03:18 paramat http://i.imgur.com/T3wJRQS.png adding some swamp in rainforest 03:22 hmmmm okay i think i got it 03:23 hmmmm est31, why do you have that special case for const char ** with freebsd? 03:25 est31 because nrz's buildbot failed and I looked up the man page in the internet 03:25 est31 and there it was char ** 03:25 hmmmm hrmm 03:26 hmmmm i need to figure out some way to detect BSD or GNU iconv 03:27 est31 to test do a PR 03:27 hmmmm it works with nerzhul's buildbot because it doesn't have glib20 installed on it 03:28 est31 ah 03:28 hmmmm anybody who actually uses minetest on freebsd is going to have glib... 03:28 est31 or not update 03:32 est31 there must be a glibc #define 03:32 hmmmm this might be bad but 03:32 hmmmm I'm going to use #ifdef _ICONV_H_ to detect BSD glibc 03:32 hmmmm i mean libiconv 03:32 est31 http://stackoverflow.com/questions/4266354/how-to-tell-if-glibc-is-used 03:36 hmmmm ... i fixed my mistake 03:58 hmmmm fantastic 03:58 hmmmm 03:58 hmmmm everything here is an invalid utf-8 string :/ 03:59 est31 :( 04:00 hmmmm wtf it feels like there's some kind of massive performance regression 04:24 hmmmm success! 04:24 hmmmm i see text again 04:42 est31 what was the problem 04:58 est31 hmmmm, where do you think should I add a new superclass for minimap update thread and mesh update thread? 05:28 hmmmm a superclass? 05:29 hmmmm the problem was that i was linking against the wrong version of the library 05:29 est31 ok 05:30 est31 yes I want to abstract away the queue, and the blocking for the queue "" 05:30 est31 -" -" 05:41 est31 I'll use util/thread.h 06:11 VanessaE [06-28 19:06] are you sure we don't have wallmounted meshnodes already? 06:11 VanessaE a bit late to answer you but yes, we DO have wallmounted meshnodes 06:11 VanessaE (homedecor's window shutters are an example of such) 06:25 hmmmm i hope there's not too much abstraction 06:25 hmmmm ConsumerThread 06:47 hmmmm est31: you there? 06:47 hmmmm https://github.com/kwolekr/minetest/commit/2cbb27dd08d760166b159860e8b02ebd91518d93 06:50 est31 ha lol ShadowNinja removes those // __ANDROID__ 06:50 est31 things you add them 06:50 hmmmm we should have a chat about them 06:50 est31 you should perhaps determine which you want 06:50 hmmmm i want 06:50 est31 I'm neutral 06:50 hmmmm how the hell could you figure out which block belongs to which without them 06:50 hmmmm it's confusing at first glance 06:51 hmmmm +1? 06:52 est31 looks good yea 06:52 est31 so you say you want a third person to look at it too? 06:52 hmmmm hmm 06:52 hmmmm in theory, yeah 06:53 est31 I know, I bring up this discussion at this point where it profits me :) 06:53 hmmmm I can completey understand why somebody might be okay with just one approval 06:53 hmmmm but that policy is clearly not for the best 06:55 est31 perhaps lets do the following: if sb proposes a PR, and sb else thinks this is a larger feature, then they e.g. tag it or somehow else indicate that they want "extended review". Then the PR needs three core devs to agree (whether from sb else, or from a coredev), but the person who sais this has to help reviewing. 06:56 est31 with "three coredevs" meaning that the author counts 06:56 hmmmm sure, I suppose that works 06:57 est31 hold that patch 06:57 hmmmm we're stuck in such a hard place 06:57 est31 why do you add it to the client libs? 06:57 hmmmm because iconv isn't used on the server 06:57 est31 string.cpp is used by server too isnt it? 06:57 hmmmm ahh good point 07:00 hmmmm revision 2 https://github.com/kwolekr/minetest/commit/a8653e7f38d07d8bd5acc36758730280e5d16d9f 07:01 est31 hrmm, iconv can miss on non-freebsd too, can it 07:01 est31 then its ok to put it into a "general" section 07:02 hmmmm isn't that a general section? 07:02 est31 yes 07:02 est31 therefore its good 07:03 est31 do we really need this _ICONV_H_ thing? 07:03 hmmmm yes 07:03 est31 perhaps replace it with a check for glibc instead? 07:03 hmmmm no can do sir 07:03 Hunterz is possible connect to server compiled against irrlicht 1.8.x with client compiled against irrlicht 1.9dev ? 07:04 hmmmm yes 07:04 Hunterz thx 07:04 est31 Hunterz, in fact, you only need irrlicht for defines 07:04 est31 we try to maintain connectability for long times 07:05 Hunterz irrlich have ugly bug with keys 07:05 est31 we have to, as our servers are mostly recent builds, but our clients keep using year old sw 07:05 est31 yea input on irrlicht < 1.9 is highly broken 07:06 est31 no entry of äöüßê on linux possible 07:06 est31 this 7 or 4 or whatever bug on azerty keyboards 07:06 est31 then the num lock thing 07:06 est31 teaches us old != mature 07:06 est31 whatever 07:07 est31 hmmmm, glibc check wont work? 07:07 Hunterz yea, these bugs... 07:07 hmmmm that is there to check which version of iconv is used 07:07 hmmmm BSD or GNU 07:07 hmmmm glibc check basically only tells you if you are or are not on linux 07:08 est31 why not use the inversion of __GLIBC__ 07:08 hmmmm because BSD can have two versions of iconv installed at the same time 07:09 est31 can you do a pr and check whether nrz's bsd works? 07:09 Hunterz btw minimap is really nice, like reis minimap on the minecraft 07:10 est31 blame RealBadAngel for it 07:10 est31 if all works, merge 07:10 Hunterz found some cosmetic bug - when client loaded, minimap render only loaded chunks, client must rotate 360 degs, then minimap are completely filled 07:11 est31 yea its the "occlusion" behaviour 07:11 est31 the server only sends blocks which are "interesting" for the client 07:11 est31 thats to spare resources 07:12 est31 and before, it was only "interesting" what was going on before a player, not behinf 07:12 est31 behind* 07:12 est31 in front of* 07:12 Hunterz maybe will be fine some cache on the clientside 07:12 est31 the client caches it already 07:12 RealBadAngel its not up to minimap 07:12 est31 also question is whether we want it 07:13 est31 you know, server being wasteful 07:13 est31 only for minimap 07:13 RealBadAngel client already stores around 1,8k of blocks 07:13 Hunterz looks like when reconnect to server and enable minimap must again rotate 07:14 RealBadAngel same is without minimap 07:14 RealBadAngel it is not minimap deciding whats loaded, just you walkin around 07:15 VanessaE seems like a one-time "load everything around the player" step might be prudent. 07:15 VanessaE but that would need the client to be able to request blocks 07:15 hmmmm hey RealBadAngel, https://github.com/minetest/minetest/blob/master/src/minimap.h#L63 what is the significance of the number "512"? 07:15 VanessaE (which it can't I think) 07:16 RealBadAngel maximum size of the scan 07:16 hmmmm oh 07:16 hmmmm well why don't you say that 07:16 hmmmm in terms of a constant expression or a comment 07:17 RealBadAngel ok, i will add comment 07:17 hmmmm it's okay 07:17 hmmmm i already did 07:18 RealBadAngel btw, it shall be lowered, to 256x256 07:18 RealBadAngel 512x512 was intended to be maximum, but client doesnt store such big area 07:18 Hunterz when connect to server, enable minimap disconnect, connect again, must enable mnimap again, will be possible save state? 07:19 RealBadAngel Hunterz, no. Minimap can see blocks that are loaded, data for minimap is created together with block mesh 07:20 RealBadAngel theres no way to store such data over restart 07:20 VanessaE actually, there is. 07:20 RealBadAngel huh? 07:20 VanessaE the "local map saving" feature could theoretically be exploited to do this 07:21 est31 yes 07:21 est31 theoretically 07:21 Hunterz every connect to server must press key to again enable minimap? 07:21 VanessaE but code would be needed to reload the data from that saved map 07:21 est31 question is is it worth the effort 07:21 est31 I mean its like when you clear the browser cache and request a website 07:21 VanessaE est31: on slower connections, undoubtedly, but I'd guess no less than 25% of the data saved will have to be re-downloaded anyway 07:22 RealBadAngel i highly doubt that. managing caches when connecting to another servers and such.... ouch 07:22 RealBadAngel hmmmm, are you changing minimap's code? 07:22 VanessaE one of the guys in #minetest was having such terrible connection quality due to an ISP network issue that he couldn't even sustain an effective rate of a few hundred Kbps 07:23 hmmmm yes 07:23 hmmmm just cleaning up some things 07:23 RealBadAngel what are you doing exactly? 07:23 VanessaE so reloading the map data from such a cache would absolutely have been faster for him (and me, at the time. I was being choked down to around 4 Mbps). 07:23 RealBadAngel i thought i already made everything you wanted 07:24 hmmmm you'll see it when i'm done 07:24 hmmmm there were still more things.. 07:24 est31 VanessaE, I guess it would be a much better improvement to only send diffs of map data around, not the whole block 07:24 VanessaE est31: agreed 07:24 VanessaE but that means a new protocol version 07:25 est31 so what 07:25 est31 we are developers 07:25 VanessaE yes but users are lazy :) 07:25 est31 we change the protocol 07:25 est31 using the cache would require it too 07:25 VanessaE true 07:25 VanessaE (because of the need for client-side block requesting) 07:26 RealBadAngel hmmmm, thats rather not kind changing my code without even talkin to me 07:26 VanessaE or rather that + being able to tell if a block is actually outdated. 07:26 hmmmm you're able to review it when i'm done 07:27 RealBadAngel we will see 07:36 RealBadAngel Hunterz, about saving current mode, thats possible 07:36 RealBadAngel and is good idea actually 07:36 Hunterz I know, all is possible :) 07:36 hmmmm also you realize that the line length limit is 80-90, right? 07:37 est31 wrong 07:37 est31 its 70-90 07:38 hmmmm it's 70^90 07:38 RealBadAngel there are no extremaly long line, just a few of them are a bit longer 07:38 est31 no, 70 ^90 07:38 est31 err 70 ^ 90 07:38 hmmmm i recognize the problem with lines that are slightly longer 07:38 est31 ^ is a dual operator :p 07:38 hmmmm the soft limit is 80 columns 07:39 est31 wasnt it 70 07:39 hmmmm no 07:39 RealBadAngel most long one has 106 chars 07:39 hmmmm it's discouraged to go over 80 columns 07:39 hmmmm but 90 is the absolute max 07:39 est31 ok you are right 07:39 hmmmm after that you have to make the line smaller somehow 07:39 Hunterz its hard learn c, cpp, when know java ? 07:39 est31 thought it were 70 07:41 RealBadAngel https://imgrush.com/s9mxey_lvFn5 07:41 RealBadAngel they doesnt look such long 07:41 hmmmm yes, but you realize that people split their screens, right? 07:42 est31 like me for example 07:42 RealBadAngel oh cmon, im on 4:3 now and that long liner doesnt occupy even half the screen 07:42 RealBadAngel on wide screen code takes 1/3 of the screen 07:42 VanessaE I'm the outlier, I maximize my editor :P 07:43 RealBadAngel instead of seeing a line you read chapters :P 07:43 RealBadAngel becuase most of the space is already taken by tabs 07:43 hmmmm then maybe you should minimize the amount of indentation in your code 07:43 RealBadAngel limit shall be 80 USEFULL characters 07:44 RealBadAngel not formatting ones 07:44 RealBadAngel hmmm, stop joking please 07:44 VanessaE I see 6 levels of indentation there 07:44 VanessaE this is excessive? 07:45 hmmmm 4 should be preferred. 07:45 hmmmm anything larger is a good indication that it might be time to refactor 07:45 VanessaE I'm not against that notion, but don't you think max 90 characters is a little archaic? 07:45 hmmmm not really 07:46 RealBadAngel yeah, cut the ifs, cut the loops put everything into arrays, i know that song 07:46 RealBadAngel sorry it doesnt work that way :P 07:46 hmmmm if we actually wanted it to fit code into a video terminal, then 80 columns would be the hard limit 07:46 VanessaE I';m just saying, it's not like we're really stuck with said video terminals. 07:46 RealBadAngel who the duck is reading code in terminals nowadays??? 07:46 hmmmm RealBadAngel: let's use Mapper::getMinimapTexture() as an example 07:46 VanessaE that would literally be pointless - after all, you're coding for a game that by its very nature can't run in a hard console. 07:47 hmmmm 98% of the function is indented two levels 07:47 hmmmm because it's completely encased inside of an if statement 07:47 hmmmm right there, if i were writing that function, i would invert the condition and return early 07:47 hmmmm look, i just saved 4 columns so far 07:48 RealBadAngel where do you see return in getMinimapTexture? 07:49 RealBadAngel and fyi, order of code is strictly an order of applying matrices operations 07:50 RealBadAngel invert anything there, change order and effect will be fucked up 07:56 RealBadAngel ouch, im commenting another function than you 07:56 RealBadAngel sorry, i think i need a nap 07:56 VanessaE no sleep for you :P 07:57 RealBadAngel i havent sleep last night, and im starting to talkin nonsenes, i really should ;) 07:58 RealBadAngel bbl 07:58 VanessaE cya 08:31 VanessaE think I'll follow RBA's lead 08:31 est31 don't sleep for a night? 08:32 est31 :p 09:10 VanessaE hah 09:11 VanessaE no, that wasn't the intent, but it's looking like I'm gonna end up doing that anyway :( 09:33 est31 :( 10:36 red1 how does minetest.item_place chose between minetest.item_place_node() and minetest.item_place_object() 12:25 RealBadAngel est, that update threads pr looks ok 12:31 est is that a +1? 12:43 est thanks 12:56 RealBadAngel est, yes 12:56 RealBadAngel Zeno`, howdy? 12:57 Zeno` hi RBA :) 12:57 Zeno` 10 days until a release? 12:57 * Zeno` checks the commit log 12:57 est ~topic 12:57 ShadowBot est: Minetest core development and maintenance. 0.4.13 release scheduled for August 10 2015. Chit-chat goes to #minetest. Consider this instead of /msg celeron55. http://irc.minetest.ru/minetest-dev/ http://dev.minetest.net/ 12:57 Zeno` err 40 12:57 est Zeno`, off by one 12:58 est month 12:58 RealBadAngel Zeno`, im playing with VBO code, i would like to know if there are leaks, and if then where 12:58 Zeno` I'm always off by at least one 12:58 est heh 12:58 Zeno` RealBadAngel, hmm ok. I haven't really been around but I can gather some data 12:58 kilbith hey Zeno \o 12:59 RealBadAngel lemme prepare PR then 12:59 Zeno` I want to be back properly it's just... "difficult" 12:59 Zeno` hi kilbith 13:08 Taoki RealBadAngel: Highlight me when PR is up please. I will give it a try myself and mention what I notice about memory usage. 13:11 Zeno` Hi... Taoki? 13:11 Zeno` have we met? 13:12 Taoki Zeno`: Hi. Not sure 13:12 Zeno` est did you read the logs and what I said about you? :p 13:12 est the do break stuff? 13:12 Zeno` and that horrible, horrible do {} while(0); 13:13 Zeno` yeah 13:13 est I just copied behaviour from another part of minetest, it seems i shouldnt copy things 13:13 Zeno` 'tis confusing 13:13 Zeno` yeah don't copy... most of the code is crap (LOL) 13:13 est methods are expensive 13:13 est and goto... 13:13 est you know goto dino 13:14 est https://xkcd.com/292/ 13:14 Zeno` the main objection to goto is unbounded gotos 13:14 Zeno` i.e. long jumps that can jump to anywhere in the program 13:14 Zeno` c and C++ gotos are local (bounded) short jumps 13:14 Zeno` and the meaning is clear; 13:15 Krock <3 dino 13:15 Zeno` break is a goto in essence anyway 13:15 est yes 13:15 est its kind of like the emscripten relooper 13:15 est its a compiler asm -> javascript 13:15 Zeno` never heard of it :( 13:15 est so asm has gotos, what to do 13:16 est make them loops 13:16 Zeno` asm has unrestricted gotos... 13:16 Zeno` loops *are* gotos :P~~~ 13:16 Zeno` but anyway, I just found the usage of do {} while(0); kind of confusing 13:16 Zeno` it's no big deal... 13:17 est when I add // breakable? 13:17 Zeno` just something I thought I'd mention 13:17 est yea 13:17 Calinou 20 GOTO 10! 13:17 Calinou is the only thing I know about gotos 13:18 Zeno` 10 PRINT "HELLO WORLD" 13:18 Calinou (can someone ELI5 what's a goto?) 13:18 Calinou (in #minetest probably) 13:19 Zeno` in the case of do { } while(0); the loop is unconditional (the branch is optimised away). The "break" keyword is a 'local' jump out of the loop 13:20 Zeno` the goto keyword can goto anywhere in the function (in other languages it can jump/goto anywhere in the program it likes) 13:20 Zeno` which leads to spaghetti code 13:21 Zeno` i.e. a break is an unconditional jump (out of the loop); and so is break 13:21 Zeno` err so is goto 13:23 kilbith https://lut.im/7sjctKw6/h83uRKy8 13:23 Zeno` ugh 13:23 kilbith yurk :( 13:23 Zeno` not lua stuff still 13:24 est kilbith, perhaps that offset bug cheapie has? 13:24 kilbith exact 13:24 kilbith texture displacement 13:26 Zeno` #2818 13:26 ShadowBot https://github.com/minetest/minetest/issues/2818 -- Make acc and vel deprecated in add_particle and search for acceleration and velocity instead by TeTpaAka 13:26 Zeno` what's with all the strcmp calls? 13:26 est make them == ? 13:26 est good idea 13:27 est but strcmp or something comparable gets called under the hood 13:27 est so mostly a style issue 13:28 Zeno` == won't work because key is a (const) char * 13:28 Zeno` hmm 13:31 est we can make the == 0 tp ! but dunno if that makes it more readable 13:31 est to* 13:32 Zeno` nah 13:32 Zeno` I guess it's the best way for that function 13:42 Zeno` For the upcoming release what are the highlights and objectives? 13:47 kilbith checking guys plz #2855 13:47 ShadowBot https://github.com/minetest/minetest/issues/2855 -- Fix bugs in mainmenu by kilbith 13:47 est blame the release manager 13:47 est for not making a list 13:47 est (its me) 14:26 kilbith sfan5, what's your script for listing the new commits in you Windows builds thread ? we could re-use it for filing the changelog without pain 14:26 kilbith *your 14:27 sfan5 minetestbot does that 14:27 est and its not quite perfect 14:27 sfan5 using a modified git log command could achieve the same result 14:27 est it records mods to 14:27 est o 14:27 sfan5 you can grep the mods out 14:28 est and when you force push, it records it multiple times 14:28 est so at the end you end up with git itself 14:28 est a changelog shouldnt be a list of git changes 14:28 est it should not include "typo fix in actionstream logging" 14:29 sfan5 a git log can however be used as a starting point for making a changelog 14:29 kilbith yes 14:29 est yes 14:30 sfan5 https://www.kernel.org/pub/software/scm/git/docs/git-log.html#_pretty_formats 14:30 est wow we are in the eighties 14:30 kilbith ok so it's easy to exclude all commits containing "typo" 14:31 sfan5 that's not what i meant 14:31 sfan5 anyway 14:31 est thats not the point kilbith typo was only an example 14:31 sfan5 the manpage i linked has information about making git log output data the way you want it 14:31 kilbith you want to exclude commits that are low relevance 14:31 est A release wont fail because nobody will volunteer to write a changelog 14:32 est so, votes on #2818 14:32 ShadowBot https://github.com/minetest/minetest/issues/2818 -- Make acc and vel deprecated in add_particle and search for acceleration and velocity instead by TeTpaAka 14:32 est ? 14:35 kilbith why querying votes for impactless cleanup... 14:35 est so let it rot? 14:35 kilbith direct merge 14:36 kilbith it's just style and minor logging 14:41 hmmmm Zeno`: are you taking on cleaning add_particle? 14:41 est Also, proposals for 0.4.13? 14:42 hmmmm that table iteration loop along with the giant strcmp elseif chain should all be getblahfield() calls 14:42 est ah I see 14:42 est yea that makes sense 14:43 est thats what tetpakaka meant 14:43 est ofc i support that 14:43 hmmmm tetpakaka didn't make the original mistake 14:43 est yes 14:43 est but they asked whether thats needed 14:44 est https://github.com/minetest/minetest/pull/2818#issuecomment-116590314 14:44 hmmmm the particle code is nothing short of terrifying 14:44 hmmmm honestly i think we should nuke it and start over from scratch 14:44 hmmmm jin_xi did some work on that already 14:44 red1 how does minetest.item_place chose between minetest.item_place_node() and minetest.item_place_object() 14:45 est good idea as long as the nuking doesnt happen in master, only the replacing 15:42 jin_xi yeah i did some work on particles, its here: https://github.com/obneq/minetest/tree/scenenodeparticles 15:53 jin_xi also please consider #2602 it stops particles leaking an int for every expiring spawner 15:53 ShadowBot https://github.com/minetest/minetest/issues/2602 -- move particle spawners to env by obneq 17:16 sloantothebone I want to understand how the player model works. Is this core dev or may I PM with somebody about this? 17:25 Taoki est: About that thread. I don't suggest upgrading to Lua 5.2 or 5.3 just for the blind sake of updating. My point has been primarily that old versions get deprecated. Minetest can't support Lua 5.1 forever, it's a version that will eventually get deprecated and not even distrubited by Linux distros any more. 17:26 Taoki To be honest, I'm already worried that openSUSE 13.1 might come pack with Lua 5.3, and I'll have issues compiling Minetest. 17:26 Calinou we can easily wait 3 years before that happens 17:27 est then we either have to tell openSUSE package maintainers that we need lua 5.1, or you use the bundled lua 17:27 est yet another reason to have it bundled 17:27 est for the "distro abandon 5.1 winter" 17:27 est cold and long 17:27 Taoki Some distros might keep it around for longer. But not forever. 17:28 est lua is a soft dependency 17:28 est if there is no system lua around, we use a bundled on 17:28 est e 17:28 Taoki We can think of the issue oppositely as well: What if this happened some 5 years ago with Lua 4.1? Today we'd have to find an ancient version of Lua to compile Minetest, because no one even has 4.1 any more :P 17:28 Taoki Oh? 17:29 Taoki Wait... Lua is bundled with the Minetest code? It's not read from system packages at compile time (by cmake)? 17:29 Taoki Like Irrlicht 17:29 est both 17:29 est if its found, we use that 17:29 Taoki Aha... interesting. 17:29 est if not we compile it 17:29 Taoki That's indeed a bit safer 17:30 est I wonder what other projects did 17:30 est which are that old 17:30 est and had similar needs 17:31 est but admittedly, past then there was no luajit maintainer who didnt like lang features 17:31 Taoki If Minetest can maintain its own version if Lua, I wish it could also maintain its own Luait :) 17:31 Taoki We'd be less restricted then 17:32 est maintaining our own language is a hard job 17:32 est and we have much much other jobs to do 17:32 est and far too less devs 17:32 * Taoki nods 17:32 est but as I said, luajit isnt abandoned 17:32 est just no features get added 17:34 Taoki Ah... but, can't Minetest maintain compatibility with Luajit 5.1 and normal Lua 5.2 / 5.3? I mean people can simply compile it with whichever they want. 17:34 Taoki Or if we support any form of Lua 5.2, we'd have to break 5.1? 17:34 est we can have ifdefs 17:34 est I guess 17:34 Taoki That would be best, totally 17:34 est but question is it worth the cost 17:35 est and second question what to recommend to distros 17:35 Taoki I think Minetest should support compiling with every version from here on: 5.1, 5.2, 5.3, future ones. Of course, that might take work... so if someone is around who's willing to do it 17:36 sloantothebone Hello 17:36 Calinou Taoki, the problem is that Lua is not strictly backwards compatible; some mods might work with Lua 5.1 but not with 5.2 or 5.3, which is why we need to settle on a single version. 17:36 est Taoki, I'm against, because it will force mod makers to make a choice which version to target 17:36 Calinou it would be like supporting either Python 2 or Python 3 17:37 sloantothebone I would like to know how the core model works, you can pm me if you want 17:37 Taoki I see 17:37 Taoki This will be a problem yeah :( 17:38 est So, luajit is maintained, and "traditional lua" can be marked for "debug purposes only, then your issues are addresses Taoki." 17:38 est move the last " to the left 17:38 Taoki Sure 17:38 est sloantothebone, you want an overview? 17:39 est over minetest core architecture? 17:39 sloantothebone Yeah 17:39 est http://dev.minetest.net/Core_Architecture 17:39 est and this has a nice diagram http://dev.minetest.net/Engine_structure 17:40 sloantothebone Well specifically the character model 17:41 est you mean playerß 17:41 est ? 17:42 sloantothebone Yes 17:42 kilbith your question is not precise, this doesnt help to answer you 17:44 sloantothebone I want to understand how the player model works 17:44 est what do you mean with model? 17:45 sloantothebone The animations, the shape of the player 17:46 sloantothebone I believe they call the skin Sam 17:46 est so what you want to know 17:47 sloantothebone Well, there's this mod that messes with the player model called playeranim, https://github.com/Rui914/playeranim 17:48 sloantothebone I wanted to understand it a bit more 17:48 kilbith talk about that on #minetest then 17:48 sloantothebone Okay 18:03 red1 how does minetest.item_place chose between minetest.item_place_node() and minetest.item_place_object() 18:04 est red1, it depends on various things 18:04 est on the item, on where you click 18:04 est err ok not on the last one 18:04 est only on the item 18:05 est here is the code https://github.com/minetest/minetest/blob/990a96578f20244626b6b9f67f8e79a7e2e614ea/builtin/game/item.lua#L191 18:05 red1 ok thanks 18:43 neoascetic hi all 18:43 neoascetic can I use loadstring in my mods? I want to eval lua code dynamically 18:53 sfan5 yes 18:53 sfan5 at least i think you can 18:53 sfan5 no idea whether SN's mod security patch disabled that 18:53 neoascetic I tried but it returns nil 19:18 celeron55 if it returns nil, there's an error message in the second return value 19:19 neoascetic ok, I'll check 19:28 est31 hmmmm, https://github.com/minetest/minetest/issues/1176#issuecomment-116782270 19:29 est31 I think this is an useful usecase 19:31 neoascetic well, I have a meta as a table, how can I get inventory for this meta? 19:32 neoascetic I am trying to get inventory of already digged node in after_node_dig callback 19:47 kilbith neoascetic, you would have more modders to help you on #minetest 20:11 hmmmm est31, I agree 20:11 hmmmm I think it might work with the jitter and all 20:11 hmmmm seems to work for the person who implemented it 21:27 sloantothebone VanessaE tells me we will have client side lua modding soon-ish 22:21 ShadowNinja I'm getting flooded with IBoneSceneNode::getBoneName() deprecation warnings. 22:22 ShadowNinja "Use getName instead. This method may be removed by Irrlicht 1.9"