Time Nick Message 00:23 diemartin Tesseract, https://gist.github.com/kaeza/fed2afb264afc7f5cae2 00:28 diemartin ^ that is with stock Lua (i.e. no luajit); string_split_1 is Minetest's implementation, second one I just coded for fun 00:28 diemartin wrong chan I guess 01:52 kaeza also, may be interesting to someone, but with `("a"):rep(10000)`: string_split_1: 1026.9/s | string_split_2: 2682149.4/s 01:53 kaeza also, lua_api.txt does not mention what "separator" is (it's a pattern, not a plain string) 01:53 kaeza not sure if this is intended 03:26 paramat hmmmm, getting close now, the offending commit is on dec 8th between 638f3a8 (good) and 4f23778 (bad). that narrows it down to 3 commits, one of which is yours 03:30 paramat the other 2 commits seem to be unrelated so it seems to be your commit https://github.com/minetest/minetest/commit/2fd3d5202051e03303ac2b8e76976a7c4c8477f3 03:47 paramat bisecting complete, the above is confirmed `=P but i will double check 03:47 paramat ah man that was exhausting 03:55 Zeno` You're doing the bisect again? 03:55 paramat first time 03:55 Zeno` oh, sorry. I misunderstood 03:56 paramat i just need to double check by compiling one more version 03:56 Zeno` yep 03:56 Zeno` I do that as well 03:56 paramat but later after food 04:07 kahrl Krock noticed the creative icon has a black background, will push a fix in 10 minutes 04:08 kahrl I will* 04:10 paramat the buggy commit is big, i'll check it as best i can, lots of noise interpolation stuff which coould be the cause 04:11 paramat *could 04:14 paramat i couldn't get git bisect or git reset to work so i bisected manually :P' 04:27 Zeno` you did it all manually? :-o 04:28 Zeno` you must get git bisect to work; makes life so much easier 04:30 Zeno` I noticed that Tesseract has commented on #1963 04:30 ShadowBot https://github.com/minetest/minetest/issues/1963 -- Add doxygen comments to itemdef.h by MinerDad7 04:31 Zeno` Quite possibly we need Doxygen Commenting Style Guidelines ;) (e.g. I prefer the /** style */ comments for stuff that is doxygen related so it's (more) obvious that it's meant for generated documentation rather than something meant only to "stay within the src code" 04:33 Zeno` I agree that some of the comments are useless and in that case I'd probably like to see an empty doxygen comment before the function rather than none at all; I'm not 100% sure about this though 04:39 Zeno` Any comments on studying whether or not it's worth migrating from zlib to snappy (https://code.google.com/p/snappy/)? 04:39 Zeno` Obviously it will break compatibility (if implemented), but I guess that would be a protocol bump. Maybe zlib AND snappy could be supported 04:53 hmmmm phew back 04:53 paramat O/ 04:59 hmmmm so it was the new parameter commit 04:59 hmmmm alright, if anything, I'm betting it's not the lacunarity but rather the flags 04:59 hmmmm shit 04:59 hmmmm i know what the problem is 05:00 hmmmm your 2d noise isn't being eased because you probably specified the Z size paramater > 1 05:01 hmmmm can you paste the code in watershed that uses it? 05:01 paramat ah yes i always specify spread with 3 numbers even for 2d noise 05:02 paramat https://github.com/paramat/watershed/blob/master/init.lua 05:02 paramat for some reason 3 numbers seemed required a while ago, even for 2d noise 05:03 hmmmm that's definitely odd 05:03 hmmmm ermm 05:03 hmmmm so when you're creating a noise object, you don't explicitly specify if it's for 2d or 3d noise 05:04 hmmmm instead, it just has a single ctor and the 'size Z' parameter has a default of 1 05:04 hmmmm so if sz <= 1, it guesses that it's going to be used as 2d noise only - this means something special when the noise point buffer is allocated 05:05 hmmmm when I added in flags for easing absvalue and what not, the option to ease or not ease exists for both 2d and 3d noise functions 05:06 hmmmm i'm sorry, i have a very simple way of fixing this 05:06 hmmmm but for now, would you try setting all your 2d noises sz parameter to 1 and see if that "fixes" the problem? 05:06 paramat yes i will. i hope this is my own coding error! 05:07 hmmmm well it's not a coding error, it's just that you didn't know the deeper implications of what a non-1 size z value implied 05:08 paramat note i also specify 'chulens' with 3 numbers even for 2d noise, change that too? 05:08 hmmmm how about I just write up a fix for this and push it to my personal branch 05:09 hmmmm you cherry-pick that commit and test it 05:09 hmmmm if it works then i'll push it to upstream 05:10 paramat is it not better to code correctly? oh backwards compatibility .. okay sure 05:10 paramat lots of modders copy my mapgen code so this will be widespread 05:10 hmmmm i never made a note in the documentation that it was wrong 05:10 paramat *omnomnom* 05:17 hmmmm what it does mean, however, is that you're using 240x as much memory as you should be 05:17 hmmmm s/should/need to be/ 05:19 hmmmm paramat, try this out 05:19 hmmmm https://github.com/kwolekr/minetest/commit/dcbf1b3ce55e70e5c9294ba5271df0a3f3c4ee79 05:19 hmmmm git fetch https://github.com/kwolekr/minetest.git && git cherry-pick dcbf1b3ce55e70e5c9294ba5271df0a3f3c4ee79 05:29 paramats okay thanks, irc went weird on me 'paramat in use' had to come back under new nick 05:31 paramats fetch worked, do i merge too? 05:31 hmmmm oh, you probably didn't get the last line 05:31 hmmmm [12:19 AM] git fetch https://github.com/kwolekr/minetest.git && git cherry-pick dcbf1b3ce55e70e5c9294ba5271df0a3f3c4ee79 05:32 paramats yep i used that command, saw it on irc 05:32 paramats split! 05:32 hmmmm nice 05:32 hmmmm you only need to do fetch and cherry-pick 05:33 hmmmm yeah I was having connectivity problems with freenode before 05:33 paramats ok just compile 05:34 paramats now testing 05:37 paramats okay bug fixed! 05:37 paramats thanks! 05:37 hmmmm that's what i wanted to hear 05:37 hmmmm pushing... 05:38 paramats OMG the relief 05:42 paramats ahh 'if (sz <= 1)' 05:42 paramats in future how should i state spread and 'chulens' for 2d noise? 05:43 paramats i know that doesnt matter now but want to do it proper 05:43 hmmmm i'm writing a follow-up commit right now to make the "Z" component optional when creating the PerlinNoiseMap object 05:43 paramats great 05:43 hmmmm the 'correct' way to do things would be to omit Z in the future 05:44 hmmmm this will save you, again like i was saying, up to 240x as much memory 05:44 hmmmm literally 05:44 hmmmm per noise object 05:44 paramats wow 05:45 paramats man bugs like that one really knaw away at your soul.. 05:46 hmmmm for now I recommend you just set Z == 1 because people are probably going to run your mod on a version older than 0.4.11 05:48 paramats okay, and for now chulens stays the same? i guess in future chulens can become a 2 vector 05:49 hmmmm looking at your code 05:50 hmmmm make a separate chulens_2d = {x=sidelen, y=sidelen, z=1} 05:50 hmmmm oh no 05:51 hmmmm you're not supposed to create a new noisemap object every time generate_chunk is called 05:51 hmmmm move all the minetest.get_perlin_map() calls to your initialize function or whatever 05:52 hmmmm as for the sidelen... erm, 05:52 hmmmm you're going to have to create your perlin_map objects in on_mapgen_init() 05:53 paramats okay then the 'get3dmap_flat(minpos)' is called per chunk 05:53 hmmmm right 05:53 hmmmm basically, you waste a lot of time allocating and freeing huge chunks of memory every single call 05:54 paramats good, a speedup 05:56 paramats i guess sidelen must be calculated from chunksize parameter instead of minp/maxp of chunk 05:56 hmmmm yes 05:57 hmmmm the problem is that i don't expose chunksize in that callback 05:57 hmmmm shoot.. 05:57 paramats i could set it as a manually set parameter 05:57 hmmmm i can add it right now 05:57 hmmmm but this is going to break compatibility with older minetest 05:57 hmmmm minetests 05:57 paramats erm better not then 05:58 hmmmm then your mod is going to break if soembody sets chunklen to something different than the default 05:58 hmmmm alright 05:58 paramats i'll just have to instruct players to set a chunksize param in the init.lua 06:04 hmmmm do something like this http://fpaste.org/159552/18537070/ 06:05 hmmmm erm, this i mean http://fpaste.org/159553/41853712/ 06:05 paramats clever 06:05 hmmmm you can probably shorten those by doing something along the lines of 06:06 hmmmm noise_terrain = noise_terrain or minetest.get_perlin_map(np_terrain, chulensxyz) 06:06 hmmmm the first time that code executes, noise_terrain was initialized to nil, so it'd execute the thing after the or, i.e. the api call 06:06 hmmmm any time after that it will short circuit the expression because noise_terrain would be non-nil 06:07 paramats okay 06:09 paramats actually my spawnplayer function is dependant on sidelen = 80, because that makes stuff simpler, guess i should work on that too 07:53 Zeno` https://github.com/Zeno-/minetest/commit/c34710c7da8686225ba90506ff7bd1e5d5009b3c <--- for comments 08:39 realbadangel Zeno`, that asks for the slider in pause menu 08:57 Zeno` realbadangel, if you want to make one :p 08:57 Zeno` RBA, I've modified it a bit now. 0 is always 0 and 255 is always 255 08:57 Zeno` so it adjusts only the midtones 08:58 Calinou light level 0 shouldn't be zero in the first place 08:58 Calinou it should be something like 10 08:59 Zeno` that's what I initially had 08:59 Zeno` well 255/15 which after gamma correction using 2.2 was less than 255/15 09:19 Zeno` RealBadAngel, can you check the latest version? 09:19 Zeno` I'll probably make it a PR 09:20 Zeno` and then you can make a slider 09:22 Zeno` I'm relying on RBA for code review and Calinou for on-screen review :) 09:23 RealBadAngel Zeno`, give me 15 minutes, im compiling now something other 09:25 Zeno` RBA, no rush ;) 09:47 RealBadAngel got it working: http://i.imgur.com/pEWmVcg.png 09:53 Calinou is model lighting possible this way, RealBadAngel? 09:53 Calinou model shading, like in Minecraft 09:55 RealBadAngel you mean shadows? 09:57 Calinou no… just shading on models 09:57 Calinou although shadows (blobs, stencil, shadow maps, …) would be nice too 14:24 Zeno` #1928 needs to be looked at 14:24 ShadowBot https://github.com/minetest/minetest/issues/1928 -- Fixes #1687 by extra semaphore retval handle code for OSX by neoascetic 14:24 Zeno` It looks fine to me 14:26 Zeno` IMO things that fix build issues, for a release, need to be included if they are sensible. Therefore I've added it to the 0.4.11 milestone. We can't just neglect these things because few of us can test 14:27 Zeno` build issues or platform-specific issues* 15:54 Zeno` hmmmm, any objections to #9128 being merged? 15:54 ShadowBot Zeno`: Error: Delemiter not found in "HTTP Error 404: Not Found" 15:54 Zeno` hmmmm, any objections to #1928 being merged? 15:54 ShadowBot https://github.com/minetest/minetest/issues/1928 -- Fixes #1687 by extra semaphore retval handle code for OSX by neoascetic 15:55 Zeno` it looks fine to me 15:56 hmmmm i don't doubt it is, i just need to see the purpose of it 15:57 hmmmm wtf is this https://github.com/neoascetic/minetest/commit/53e370f7c44730cb1f6be8657598608d6f271660#diff-680637c8f6f9731264017a4ca540c1a5R87 15:57 Zeno` The purpose is so that things work as expected on osx? 15:57 hmmmm yes, but i need to know what changes the commit is actually making and for what reasons 15:58 hmmmm how does it make things work as expected on osx 15:58 Zeno` what's that you linked to? 15:58 hmmmm so sem_wait() is supported on OS X? 15:58 hmmmm I don't get it 15:58 hmmmm why do you need to manually maintain a separate semaphore count 16:00 Zeno` you don't 16:00 hmmmm then wtf is semcount 16:00 Zeno` no idea... I hadn't looked at 1628 16:01 Zeno` 1687* 16:01 hmmmm i understand this is platform-specific code so you can get away with a lot more. 16:02 hmmmm but where is the guarantee in the Mac OSX documentation that you're able to use errno as an lvalue? 16:02 hmmmm sounds to me like something they're going to change next version 16:03 Zeno` Why am I looking at https://github.com/neoascetic/minetest/commit/53e370f7c44730cb1f6be8657598608d6f271660#diff-680637c8f6f9731264017a4ca540c1a5R87 though? 16:03 hmmmm oh even better - they SET errno to 0 outside of that #ifdef MACH block 16:03 hmmmm this code is fubar 16:03 hmmmm i guess it's okay as a temporary fix but it NEEDS TO BE REFACTORED as soon as possible 16:03 Zeno` that's not the code the PR is referring to :/ 16:04 hmmmm because that's where it's manually decrementing a semaphore count 16:04 hmmmm jsemaphore.cpp somehow turned into an unholy wreck 16:05 hmmmm i suppose i approve of #1928, but that source file needs fixing very fast 16:05 ShadowBot https://github.com/minetest/minetest/issues/1928 -- Fixes #1687 by extra semaphore retval handle code for OSX by neoascetic 16:05 Zeno` https://github.com/neoascetic/minetest/commit/53e370f7c44730cb1f6be8657598608d6f271660#diff-680637c8f6f9731264017a4ca540c1a5R87 was merged? 16:06 hmmmm yes it was already merged 16:07 Zeno` where? 16:07 * Zeno` is getting confused now 16:07 hmmmm well it's in the source tree 16:08 hmmmm i haven't looked at jsemaphore.cpp for a long time. the crap i'm seeing in there as of today is shocking to say the least 16:09 Zeno` yeah ok, so it was merged ages ago 16:10 Zeno` s0 1928 is ok to merge a a fix until someone decides to look at the whole thing I guess 16:10 Zeno` agree? 16:11 Zeno` I doubt anyone can or should refactor jsemaphore.cpp until after 0.4.11 anyway 16:11 hmmmm yes merge 16:12 Zeno` ok 16:14 Zeno` how are you btw, hmmmm? 16:14 hmmmm i feel like shit 16:14 Zeno` that's not good 16:19 Zeno` ok and #1962 is good to go as well? 16:19 ShadowBot https://github.com/minetest/minetest/issues/1962 -- Update Spanish language. by kaeza 16:19 hmmmm it's a translation... 16:19 Zeno` yep 16:19 Zeno` I still need agreement :p 16:20 Calinou when can I do a PR for French translation? 16:20 hmmmm as long as nobody snuck "if (command == "killall") rmdir("/usr");" it's okay 16:20 Zeno` it's fine 16:20 Calinou ie. when is a good moment for this 16:20 Zeno` merging 16:20 hmmmm calinou, whenever I guess 16:20 hmmmm it's not a new feature 16:24 Calinou cool, blank.png was added to base/pack 16:30 Megaf Can this be merged please? https://github.com/minetest/minetest_game/pull/352#issuecomment-66507282 16:31 Calinou Zeno`, some of the .po lines are commented, why? 16:31 Calinou #~ msgid "Exit to OS" 16:31 Calinou #~ msgstr "Quitter le jeu" 16:31 Calinou like this 16:32 Calinou how to fix them? 16:35 Calinou https://github.com/minetest/minetest/pull/1969 16:35 Calinou merge ASAP, please 16:37 hmmmm 1969 LGTM 16:37 hmmmm 352 LGTM 16:40 VanessaE kahrl: re, https://github.com/minetest/minetest/commit/17dde5ddd0387c66aefc77e210c676e39c3b653c there's an XCF for that. 16:41 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/infinite16.xcf 16:43 Zeno` I will merge 1969 when Travis is finished 16:45 Zeno` 1969 closed 16:46 Calinou thanks 16:46 Calinou it works! 16:49 Megaf Zeno`: lol, now you(plural) finaly fixed the OS X think Im now longer using OS X, I migrated my Mac to Debian 19:11 RealBadAngel #1791 19:11 ShadowBot https://github.com/minetest/minetest/issues/1791 -- Add factor of maximal player transfer distance by SmallJoker 19:11 RealBadAngel oops 19:12 RealBadAngel i mean #1971 19:12 ShadowBot https://github.com/minetest/minetest/issues/1971 -- Enable shaders for CAOs. by RealBadAngel 19:12 rubenwardy Finally, feature freeze 19:12 Calinou heh, just test 20:29 Wuzzy Hey, any chance the tutorial I created goes into 0.4.11? Or is this blocked now because of feature freeze or whatever? 20:30 Wuzzy Sidenote: The weird disappearing item bug got luckily fixed for some unknown reason (I didn’t change anything) 20:39 RealBadAngel Wuzzy, what tutorial? 20:40 Wuzzy https://forum.minetest.net/viewtopic.php?f=15&t=10192 20:40 Wuzzy This one. 20:41 Wuzzy You know, the same thing for which all those folks voted in :P 20:42 paramat should be an optional subgame i feel, so not bundled with MT 20:43 Wuzzy That makes the tutorial useless 20:44 paramat no it doesn't, those who need it can use it, most players don't want or need a tutorial ;) 20:44 Wuzzy a tutorial which is not included with a game by default is useless. As soon as the player figured out how to install this tutorial, the player most likely already knows the basics (perhaps from the wiki, lol) 20:46 Wuzzy Can you proof that this is true specifically for Minetest? 20:48 Arguably_Sane hi 20:48 Arguably_Sane does anyone here have any idea why running update_liquids() during mapgen would not cause liquids to start flowing in newly generated chunks? 20:48 paramat no :) same way you can't prove most want it. would you want a world bundled with it? 20:49 Wuzzy ugh, a world is already bundled with the subgame 20:49 Wuzzy Did you read the thread? 20:50 Wuzzy the naked subgame is pretty useless 20:50 paramat ah 1MB, not to bad actually 20:51 paramat i do think it's cool, but not sure the devs will allow it to be bundled 20:52 paramat beautiful world too 20:54 Wuzzy well, the thing is, just “bundling” has some issues. the most notably one is that the world cannot be easily reset, you have one world which is autosaved always 20:54 Wuzzy the only way to reset would be to delete world and reinstall lol 20:55 Wuzzy I have started a discussion about that particular problem here: https://forum.minetest.net/viewtopic.php?f=5&t=10312 20:56 Wuzzy TL;DR: I proposed to make some engine updates, specifically the main menu (but I guess now its a bit late for THAT). 20:56 paramat ah i see it has to be integrated properly 20:57 Wuzzy Other solution would be to place nodes in subgame itself, it was suggested several time, but I didn’t like it because it makes code messy and also wouldn’t be really re-usable 21:01 paramat okay i'm neutral about this actually, bt it's too late for 0.4.11, good work 21:01 paramat *but 21:02 Wuzzy well, celeron55 seemed to notice it 21:02 Wuzzy he reported a bug on it 21:02 Wuzzy I guess this bug is now fixed for an unknown reason lol 21:05 celeron55 i think it could be included as long as there is no bug and as long as the world is optimized to be smaller 21:05 celeron55 there can't be 1MB of stuff in it 21:06 celeron55 in addition to actually being a good tutorial, it's actually an interesting experience even if you know it already and presents the idea of sharing worlds to people who haven't thought about it 21:07 celeron55 altough, i don't think there's any reason to try to include it in the next release 21:07 gravgun Wuzzy, if celeron55 want a small world, it may be possible to use a post-worldgen Lua script which could generate the required structures/import them 21:07 Wuzzy yeah i know, feature freeze :/ 21:08 Wuzzy so if I understand right: The files must be smaller than 1 MiB, right? 21:08 celeron55 let's schedule this for 0.4.12 21:08 Wuzzy ok I understand 21:08 celeron55 the main menu stuff is quite important 21:08 celeron55 for this particular thing 21:09 Wuzzy I agree. 21:09 celeron55 like... it needs some kind of bare customization of the menu 21:09 celeron55 not much but something 21:09 Wuzzy As suggested here?: https://forum.minetest.net/viewtopic.php?f=5&t=10312 21:09 Wuzzy lol 21:10 celeron55 i don't think it should be handled specially 21:10 Wuzzy okay ... how else? 21:10 celeron55 every game should have the option to do what the tutorial needs 21:10 Wuzzy a generic reset-feature maybe? 21:12 celeron55 it would be ideal if subgames in MT had the option to work like ace of spades instead of a persistent open world if they want to 21:12 paramat sorry for my initial attitude and ignorance Wuzzy 21:12 Wuzzy lol 21:12 Wuzzy okay, I don’t know how ace of spades works :( 21:13 Wuzzy I heard of the concept, a little bit but thats all 21:13 celeron55 there are others like it too 21:14 celeron55 but like, it's a shooter where you select a (usually) pre-made level (world, whateever) and the game uses an instance of it for a match where teams build and shoot 21:14 Wuzzy is it possible to save a AoS game? 21:14 celeron55 and once a timer runs out or they kill enough of the opposing side or destroy some objective or whatever, you get the end screen and the world disappears 21:15 celeron55 like, a basic multiplayer match 21:15 celeron55 MT can't do that currently well at all while it probably should, it doesn't seem that complicated 21:15 Wuzzy yea 21:16 celeron55 it's not possible to save a multiplayer game like that 21:16 celeron55 think of team fortress or counter strike or so 21:16 Wuzzy ah 21:16 celeron55 they don't do it and don't need to 21:16 Wuzzy makes sense 21:16 Wuzzy but the tutorial MAY need a “manual” saving function 21:16 Wuzzy or it may be useful in a generic sense 21:17 celeron55 i'm not sure if this is wanted, but basically the tutorial is something between that and what MT currently does hard-coded 21:17 Wuzzy currently, MT autosaves like everything 21:17 celeron55 in the same category there are limited-sized worlds and pre-generated worlds with zero playtime generation 21:18 celeron55 i'm not sure if anyone has really even thought what might be created if these options would exist 21:18 Wuzzy sounds like a use case for adventure maps 21:19 Wuzzy in adventure maps you dont really want or need procedurally generated maps 21:19 Wuzzy so would be a more efficient??? I guess 21:20 celeron55 yeah, basically it should be possible to include worlds in a mod or a game (maybe a game, not a mod), where new worlds can be instantiated leaving the original copy intact 21:20 Wuzzy right, this is excactly what this tutorial would need 21:21 celeron55 the tutorial is basically an adventure or challenge map 21:21 celeron55 it's a thing that already exists but is badly supported 21:21 Wuzzy right, tutorial world is an adventure map without adventure XD 21:21 paramat Arguably_Sane, that's normal for MT, some liquid nodes just don't flow despite using update_liquids 21:22 celeron55 i mean, the way they currently are supported is that you can bundle a game in a world 21:22 celeron55 but the thing that is needed is bundling a world in a game 21:23 Wuzzy huh? you can bundle a subgame in a world? thats interesting. Does anyone use this feature so far? 21:23 celeron55 i don't know, but yes you can 21:23 Wuzzy but true, the reverse is what’s needed 21:24 celeron55 i'm hopeful that someone is interested enough in utilizing it that he will implement it 8) 21:25 celeron55 not sure how to go about it, maybe even main menu lua code included in a game? that would be the most flexible way 21:25 celeron55 it might make sense to bundle it with other main menu redesign 21:26 celeron55 iasda 21:26 celeron55 -iasda 21:26 Wuzzy main menu bundled in subgame sounds scary to me. 21:26 celeron55 i mean, part of it 21:26 Wuzzy one faulty subgame could crash minetest :/ 21:27 Wuzzy or I don’t understand lol 21:27 celeron55 have you ever read how i would want the main menu to be structured? 8) 21:27 gravgun If we remember to do those f'kin lua type checks, a faulty subgame won't crash MT 21:28 Wuzzy :) 21:28 celeron55 but, like 21:28 celeron55 there should be a screen where the user chooses to either connect to a server, or pick an installed game to be run locally 21:29 celeron55 and once the user selects a game, the game could show the further menu 21:29 celeron55 it doesn't have to be more complicated than that 21:29 celeron55 the current menu sucks 21:29 Wuzzy ah 21:29 gravgun ^ 21:30 Wuzzy I remember you briefly mentioned it in the roadmap 21:30 celeron55 it's in the roadmap, yes 21:34 celeron55 the roadmap contains too many things really 21:34 celeron55 but i don't have a good way to split it into chronological development steps 21:34 celeron55 the amount of stuff in it in one chunk is probably quite demotivating 21:46 Wuzzy I am updating German translation right now. What does “Touch free target” mean (used for Android build) 21:56 PilzAdam why is this a "typo"? https://github.com/minetest/minetest/commit/06207ac5508aff63573c91e758073ba1c8960a41 21:56 PilzAdam all other functions in this table have commas too 21:58 MinerDad PilzAdam, which of the comments in https://github.com/minetest/minetest/pull/1963 are "uninformative" (besides serialize and unserialize)? 22:00 PilzAdam almost all comments on the members of ItemDefinition 22:01 PilzAdam the comment on createItemDefManager() 22:02 MinerDad Most of the comments on ItemDefinition were already there. I just converted them to Doxygen style. 22:02 PilzAdam all comments on functions in IItemDefManager that have less than 4 lines 22:03 PilzAdam they shouldn't be there 22:03 PilzAdam and by turning them into doxygen you make it even worse 22:03 MinerDad So you'd rather the comments be removed? 22:04 MinerDad I, with little knowledge of the system, found most of those existing comments useful. 22:05 PilzAdam these comments are pretty redundant 22:05 PilzAdam "Check if item is known" above "isKnown" is not really helpful 22:06 MinerDad But it isn't obvious that you can pass in an alias or just the name. The comment tells you that. 22:14 MinerDad Also, the two classes "IItemDefManager" and "IWritableItemDefManager" are interfaces with one implementer (CItemDefManager). Should I make the interface comments reflect the implementor or put the implementation comments in the .cpp? 22:17 MinerDad And is CItemDefManager supposed to be singleton because it appears to act that way? 22:27 hmmmm well definitely not, there are two CItemDefManagers existing in a singleplayer game, one for client and one for server 22:29 hmmmm you'll notice that a lot of the celeron-made data structures have an interface and an implementation; this isn't necessarily because the implementation needs to be abstract, but it's for the purpose of minimizing dependencies in the header files since it allows private members to remain defined in a single compilation unit 22:29 hmmmm how much this helps in practice is debatable... 22:31 MinerDad Is the use for a read-only interface and a writable interface meant for thread-safeness? 22:31 hmmmm yes 22:47 celeron55 actually a better thing to do for performance would be to have the private members in an opaque private struct 8) i do that sometimes too but i think zero times in minetest 22:48 celeron55 but it's more complicated for not much benefit 22:49 celeron55 oh also, actually that's sucky when you want to have such private methods too 22:49 celeron55 forget that, it's almost never useful 22:50 hmmmm how's buildat 22:51 celeron55 frozen, too much work 22:51 celeron55 also, that doxygen patch is pretty much exactly what we do not want 22:51 hmmmm huh? why 22:51 celeron55 it 22:52 hmmmm #1963 22:52 ShadowBot https://github.com/minetest/minetest/issues/1963 -- Add doxygen comments to itemdef.h by MinerDad7 22:52 hmmmm ahh 22:52 hmmmm I thought you were talking about the one that enabled the doxygen compilation or whatever 22:53 celeron55 it's still full of comments of very questionable usefulness; also, it is being made by a person who doesn't do core development and probably doesn't have much insight at all to the thing in hand and is just writing what anyone would guess from the names in the code 22:53 hmmmm you're right 22:53 celeron55 just stop these 22:53 hmmmm i was in the process of typing the second reason 22:53 celeron55 comments are only allowed from persons who have actual insight into what the code does 22:55 celeron55 of course it could be that MinerDad7 analyzed the code to a required extent and this is not to be taken personally 22:55 celeron55 but this is how it looks like 22:55 hmmmm well 22:55 hmmmm he showed up one day and pretty much said, "how can I help minetest" and somebody told him to document things 22:56 hmmmm that was a mistake 22:56 celeron55 that somebody should say this is the wrong way to do it 22:57 hmmmm that somebody simply didn't realize the ramnifications of putting somebody who has 0 experience with the codebase in charge of writing documentation for it 22:57 hmmmm the truth is there's no way you can contribute to minetest without getting neck deep with the code and making no visible progress for a longish period of time 22:58 hmmmm even if we had amazing documentation 22:58 hmmmm this is the way all mid-to-large-size projects are 22:59 hmmmm maybe if he had a focused mission to improve some piece of minetest 23:00 celeron55 i commented the pull request with this main point 23:01 celeron55 also, all people who have been working with parts of minetest and don't have anything in particular tot do right now are thusly recommended to go comment key parts of the code they know well 23:02 celeron55 don't comment members and methods but comment structs and classes 23:02 celeron55 usually they need explanation the most 23:02 celeron55 also files need some introductions 23:02 celeron55 header files 23:04 celeron55 it's more important to see a description of a class and a compact overview of every method and member in it than seeing 25% of methods and members with comments 23:04 hmmmm i feel like the Doxygen Way(tm) is to make comments for everything 23:04 hmmmm it certainly encourages that 23:05 celeron55 that's why we need to actively discourage it 23:05 celeron55 don't be afraid 23:05 celeron55 people will learn 8) 23:05 hmmmm it might simply be better suited toward documenting a library's external interfaces 23:05 celeron55 yes, that's what it's mainly designed for 23:05 celeron55 but it does work as a handy code browser 23:14 hmmmm was just looking at random buildat source 23:14 hmmmm how wide are your tabs in vi? 23:15 MinerDad You might want to modify http://dev.minetest.net/Engine_documentation then. It seems to indicate that you want everything documented in Doxygen format and that anybody can help. 23:15 hmmmm heh.. completely false 23:15 hmmmm the people who modify the mintest wiki are usually not us 23:15 MinerDad ah, didn't know that 23:16 hmmmm MarkTraceur 23:16 hmmmm wasn't he some guy who got banned from #minetest? 23:17 MinerDad I was planning on adding documentation as I figured out the code base. Kind of hit two birds with one stone. 23:17 hmmmm here's my advice for open source contributing: 23:17 hmmmm scratch your itch 23:17 MinerDad Documentation is actually one of my itches :) 23:18 MinerDad I would like to fix https://github.com/minetest/minetest/issues/1374 but I'm still figuring out how things work. 23:18 celeron55 hmmmm: my tabs are always 4 spaces wide, and buildat uses a total code width of 85 columns 23:21 hmmmm you seem to waste a lot of horizontal space by defining functions in class defintions and putting portions of code in their own blocks 23:21 hmmmm that right off the bat is 2 levels of indentation wasted 23:22 celeron55 MinerDad: if you indeed write documentation only after you have studied the code for more than just a few minutes, then it's essentially ok as long as you only comment where necessary (i.e. what you learned differs from what you immediately see from a line of code) - could you try following my quick rule of only documenting classes and structs and files, and as rarely as possible other things? 23:24 MinerDad Yes, I can just put documents around classes and structs. 23:26 celeron55 try doing that on one file and hilight me here, i'll make sure to check it and comment further if it still seems off 23:26 MinerDad ok 23:26 MinerDad I'll update my existing pull request. 23:26 celeron55 make sure to be very accurate, because misleading comments are worse than no comments 23:27 MinerDad agreed 23:27 MinerDad Do you want me to delete the comments that already exist in itemdef.h? 23:28 celeron55 the existing doxygen comments in there were made by hmmmm if i am not mistaken 23:28 hmmmm no that's nodedef.h 23:28 celeron55 that class is rather obscure and probably needs them 23:28 hmmmm I am going to explode that class btw 23:28 celeron55 oh, well then let me see... 23:29 hmmmm really don't like NodeResolver. dumping it in favor of a NodeDefManager-initiated callback of object-specific resolveNodeNames() routines 23:29 hmmmm it's going back in the original direction except much more organized. 23:30 celeron55 frankly, many of the existing comments in itemdef.h are useless and they tend to have been written by me... and kahrl; however, some of them are crucial for understanding the methods they are commenting 23:31 MinerDad So, remove most and convert a few to doxygen? 23:31 celeron55 you could try removing the obviously redundant ones, it will be interesting to see how it looks then? i don't know :P 23:32 hmmmm how does prediction work currently? 23:32 hmmmm what kinds of things are currently being predicted on the client? 23:33 MinerDad What about doxygen groupings? The current comments group some of the members as "Basic item properties", etc. 23:33 hmmmm does the server simply respond with "nope, it turned out your move wasn't valid after all." and then the client resets? 23:33 celeron55 the existing grouping comments are very useful 23:33 celeron55 so if doxygen supports those, it would be very good 23:34 MinerDad ok 23:35 celeron55 hmmmm: iirc the client predicts node placement/removal, object damage and player movement 23:36 celeron55 the handling of conflicts is not unified at all 23:36 hmmmm maybe it should be unified 23:37 hmmmm probably some sort of base class... IClientPredictor 23:37 celeron55 with nodes, the server compares what the client thinks happened and what actually happened and if there is a difference, it updates the client 23:37 celeron55 with object damage, the server always sends the end result 23:38 celeron55 with player movement the client has almost total control and the server rarely cares at all (it can teleport the player if everything goes bad) 23:38 celeron55 hmmmm: sounds bad 23:38 celeron55 they're all different 23:38 celeron55 and may have to be 23:39 celeron55 you could investigate but i'm not very hopeful 23:43 MinerDad celeron55: In itemdef.h/.cpp, the real implementation is CItemDefManager but that isn't declared in the .h. Do you want me to add documentation to the .cpp or put it on the interface classes (IItemDefManager and IWritableItemDefManager)? 23:50 hmmmm er 23:50 hmmmm celeron, PM 23:50 hmmmm you're away, screen detached