Time Nick Message 00:36 ekem https://github.com/minetest/minetest/blob/3d53c90d4b34563ef27bc38da211dab91b72d321/doc/lua_api.txt that might a little more sense as a .md 01:52 paramat initial draft of treegen.cpp PR #2580 01:52 ShadowBot https://github.com/minetest/minetest/issues/2580 -- Treegen.cpp: Add pine tree. Force place trunks. Speed optimise leaves blits by paramat 01:59 hmmmm bleh 01:59 hmmmm every time bitfields sound like a good idea, they aren't 02:00 Zeno` heh 02:00 hmmmm oh paramat 02:00 hmmmm i'm considering adopting a coding rule: 02:00 hmmmm don't use non-const references 02:00 Warr1024 anyone want to review #2579? 02:00 Zeno` yes! 02:00 ShadowBot https://github.com/minetest/minetest/issues/2579 -- Move texture_min_size even further down the pipe. by Warr1024 02:00 hmmmm what do you say about this? 02:00 hmmmm i fixed up all the instances in l_mapgen.cpp 02:01 Zeno` I say yes, yes, yes. I've always promoted that idea 02:01 hmmmm yeah 02:01 hmmmm ^^ 02:01 paramat erm 02:01 hmmmm if you need to modify a std::vector or something, do const std::vector &foobar = *your_param_here; foobar[i] = whatever; 02:02 hmmmm errm, not const 02:02 hmmmm non-const references in function PARAMETERS 02:02 hmmmm if you're okay with that, it'd probably be a good opportunity to fix treegen.cpp which has many egregious violations of this 02:02 Zeno` for some reason I automatically assumed you were talking about parameter lists 02:03 hmmmm yeah 02:03 Zeno` Warr1024, I can check it later... doing memory checks atm 02:03 paramat so all numbers should be defined in the header file as a constant? 02:03 hmmmm int bar = 54; blah = foo(bar); oh no is my bar going to get molested? 02:03 hmmmm int bar = 54; blah = foo(&bar); oh i'm passing the address to bar, chances are it's going to get modified by ref 02:04 hmmmm see? 02:04 hmmmm having to check function definitions every 5 seconds is annoying 02:04 Warr1024 Zeno`: thanks. It fixes blocker bug 2558, i.e. hud elements being all messed up. 02:04 hmmmm paramat: ???? 02:04 paramat man i'm such a lousy programmer =) 02:05 hmmmm erm 02:05 paramat okay i'll study this 02:05 hmmmm you see void make_tree(MMVManip &vanip, ...) ? 02:05 Zeno` paramat, it's not you. The "guideline" has not been used in minetest in the past 02:05 paramat yes 02:05 hmmmm change it to make_tree(MMVManip *vanip, ...) 02:05 hmmmm vmanip 02:05 hmmmm rather 02:05 paramat okay 02:06 hmmmm and if you don't intend to modify the vmanip at all, you can do either make_tree(const MMVManip *vmanip, .... or make_tree(const MMVManip &vmanip, ...) 02:06 Warr1024 hmmmm: I like it. I've never been comfortable with ¶ms as opposed to *params; learned them back in school, then promptly forgot them... 02:06 hmmmm yep 02:07 hmmmm okay if everybody seems okay with this i'll add it to the rule thing 02:07 Warr1024 hmmmm: off-topic, when I highlight your nick, I feel like it makes me sound contemplative. 02:07 hmmmm hmmmm. 02:07 paramat okay i'll also do some web research on this practice =) 02:07 hmmmm a lot of contemplated people in ##math highlight me 02:07 hmmmm contemplative i mean 02:08 hmmmm paramat: https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Reference_Arguments 02:09 hmmmm i do like some of the things here 02:09 Warr1024 I'd spend less time compiling and more time testing if I just broke down and used a syntax-highlighting editor... 02:09 * paramat looks 02:09 * Warr1024 too 02:10 hmmmm there are a lot of iffy parts to the google code style 02:10 hmmmm like the rationale for banning default arguments? absolutely retarded 02:10 Warr1024 I sort of figured that the Google C++ code style guide would be just "don't use C++, use Go." 02:11 hmmmm wasn't go specifically intended for server applications 02:11 hmmmm i have such mixed feelings for go 02:11 Warr1024 I've never tried it, personally. 02:12 Warr1024 Heard a lot of good things about it, but those were all from the Go authors :-) 02:12 hmmmm there's a web tutorial that lets you play with it but i never got past the 5th screen because it just wouldn't work for some reason 02:13 Zeno` we could convert to using Rust 02:13 hmmmm haha 02:40 paramat hmmmm, how about 'TreeDef &tree_definition' in l-system tree functions, i suspect that is a const reference so should stay '&'? 02:46 hmmmm WTF 02:46 hmmmm unless I'm mistaken that's being passed by value 02:46 hmmmm I knew treegen.cpp was bad but I didn't realize it was this bad 02:47 hmmmm spawn_ltree()'s definition is waaaaay over 80 columns... 02:47 paramat yeah bad line lengths 02:47 hmmmm just about everything is 02:47 hmmmm i'm really permissive when it comes to code style 02:47 hmmmm as long as it's neat... but this, i would not accept this if it were in a PR today 02:48 paramat goes to 168 columns =/ 02:48 hmmmm paramat: I assume you mean in tree_trunk_placement and tree_leaves_placement? 02:48 hmmmm those are not const references but they could be made const 02:49 Zeno` let's use GNU style 02:49 hmmmm i'm sure the algorithm works fine and all but christ this is like somebody threw up 02:49 hmmmm on a .cpp file 02:50 paramat yes in trunk, leaves, fruit placement functions 02:50 Zeno` I saw a wonderful one the other day 02:50 Zeno` every 4th line was an #ifdef 02:50 hmmmm so make_ltree could use some fixing... TreeDef tree_definition could be made a const reference 02:50 Zeno` couldn't read the code amongst the noise hehe 02:50 hmmmm what's the point of treegen::error even 02:51 hmmmm i'd advocate getting rid of that 02:51 hmmmm i'd advocate getting rid of the namespace altogether... why isn't that a class 02:51 hmmmm the entire thing needs a massive refactoring and I think we (any one of us) should work on it at a separate time 02:52 hmmmm but in the grand scheme of things, it's not very important 02:52 hmmmm I might work on it as a prerequisite to adding DECO_LSYSTEM 02:52 paramat well i'll change &vmanip to *vmanip throughout, and fix line lengths for now, leave the rest for someone else 02:53 hmmmm ok 02:57 hmmmm anybody else notice a consistent freeze when returning to main menu as of recently? 02:58 hmmmm ahh oh nevermind this was fixed 03:00 hmmmm does anybody understand the rationale behind this commit? https://github.com/minetest/minetest/commit/dfe00abc5addd66dbf840d7e826690291f4afd93 03:05 Zeno` no 03:05 paramat (um no) 03:07 hmmmm actually nvm it looks like the deadlock is still there. i noticed a lot of nerzhul commits that are supposed to fix an issue don't actually fix the issue 03:27 paramat error when compiling: cannot convert ‘MMVManip’ to ‘MMVManip*’ for argument ‘1’ to ‘void treegen::make_tree(MMVManip*, v3s16, bool, INodeDefManager*, int)’ 03:28 hmmmm sounds like you aren't passing along the correct type to make_tree() :) 03:29 paramat well i'll commit this so you can see 03:33 paramat phew lines down to roughly 95 columns, i'm done for tonight O/ 03:34 hmmmm lol 03:34 hmmmm ahhhhh so much minetest TODO such little time :) 03:44 hmmmm https://github.com/kwolekr/minetest/commit/432637c3a24a525824a5afacb8b1d8697fc99599 03:44 hmmmm this is a big one 04:01 Zeno` HOBJDEF? 04:04 kahrl I think we should ship the windows build with a custom kernel32.dll that implements CloseHandle and DuplicateHandle for HOBJDEF 04:05 Warr1024 I think you should ship the Windows build with a bootable Linux image :-) 04:05 kahrl well systemd might soon be enough ;) 04:20 hmmmm well 04:20 hmmmm it's a handle to an object definition 04:21 hmmmm ahh 04:21 hmmmm you guys think the type HOBJDEF looks visually similar to HGDIOBJ 04:25 Zeno` my biggest concern it that it reminds me of hobbits. also HDGIOBJ is hard to type and I cannot pronounce it :( waaah 04:26 Warr1024 #define HOBBIT HOBJDEF 04:26 hmmmm :) 04:26 Warr1024 #define GIDDY_HOBBIT HGDIOBJ 04:26 hmmmm what do you guys suggest I call it then? 04:27 Zeno` ObjDefHandle? 04:27 hmmmm sure 04:27 Zeno` I dunno... all these things in that file are hard to name for some reason :) 04:27 Warr1024 Calling it a "hobbit" would be a good way to troll future developers 04:27 Zeno` hobjit 04:28 Warr1024 that sounds like a just-in-time hobbit. 04:28 hmmmm haha reminds me of this one guy who used to write VB6 programs and name his variables after animals 04:28 Zeno` sounds reasonable 04:28 hmmmm seriously, Dim rooster As Long 04:28 Warr1024 nice 04:30 Zeno` ShadowNinja, re 4fbcfac 04:31 ShadowNinja Hmmm? 04:31 Zeno` I knew what you meant by serial ;) What's the best way to do an incrementing serial though? while filename_exists append serial+1 ? 04:32 Zeno` (i.e. a way that's re-entrant) 04:32 ShadowNinja Zeno`: See Player::save() 04:32 Zeno` although maybe it doesn't need to be re-entrant... /me looks 04:33 ShadowNinja It's only called from the main thread, so thread-safety isn't an issue. 04:33 Zeno` ok so while_filename exists... ok I'll do that and your other suggest 04:33 Zeno` ions* 04:34 hmmmm ahhhh 04:34 hmmmm kdevelop is driving me insane 04:35 hmmmm i'm only able to detach the Build output window *sometimes*. other times when it disappears, and then I drag it out to my second monitor, it'll go back to being docked 04:42 hmmmm okay I changed that, anybody have any comments? 04:42 hmmmm I'm gonna push it 04:42 hmmmm push it to the limit 04:42 Warr1024 walk along the razor's edge 04:42 hmmmm don't look down, just keep your head 04:42 Warr1024 :-) 04:47 ShadowNinja hmmmm: Weren't biomes undocumented bucause they're unsupported? 04:47 hmmmm ahh yeah 04:47 hmmmm hum, that might be changing soon.. now they'll just be mostly undocumented 04:49 Warr1024 it looks like github ate my PR for the android icon shadows when I screwed up the branch and had to recreate it 04:49 Warr1024 I've also learned the hard way not to put anything matching #nnnn where nnnn matches an issue/PR *anywhere* in a commit comment 04:50 Warr1024 makes a hell of a lot of noise on the issue's comment thread every time I rebase that commit. 05:03 Warr1024 Eh, I'll wait until I can get 2536 merged before I worry about opening another PR. 05:04 Warr1024 my "fork" of MT is starting to get complicated... 05:25 hmmmm yeah, don't put anything matching #nnnn in a channel as well =] 05:25 Warr1024 I noticed 05:26 hmmmm grr :( i wish whoever implemented schematic node replacements had made it a field in the schematic definition table 05:26 hmmmm this breaks my attempt at being generic 05:37 Zeno` :3 05:48 hmmmm actually that's not totally accurate... i was the one who originally broke it by making schematics the only object to be loadable with a file 05:49 hmmmm all of this object def organization was added on after the fact though :p 05:49 Zeno` heh 05:49 Zeno` I really need to clean up my git repo 05:49 hmmmm woot now I have to add a get_or_load_* for every object 8) 05:50 Zeno` I have about 60 branches 05:50 Zeno` ShadowNinja, #2582 05:50 ShadowBot https://github.com/minetest/minetest/issues/2582 -- Change format of screenshot names by Zeno- 05:50 Zeno` I guess I can make sure that all PRs are merged all close and just re-clone 05:50 Zeno` might be easiest 05:51 Zeno` s/all close/or closed 05:51 Zeno` re-clone then cherry pick what I want to keep. I wonder if you can cherry pick from another repo 05:53 Warr1024 git branch -D branchname; git push --delete branchname 05:53 Warr1024 you can't cherry-pick from another repo, but you can add a remote, fetch to it, cherry-pick from it, then remove the remote, I believe. 05:53 Zeno` can I add a local repository as a "remote"? 05:54 * Zeno` will read the docs 05:54 Warr1024 Zeno`: yep 05:54 Zeno` I suppose I could just set up a git server on this computer then it's no different anyway :D 05:55 Warr1024 I recently installed and started using gitolite, and I'm really liking it. 05:57 ShadowNinja Zeno`: max_tries++; max_tries < 1000 reads better. And you can combine it with serial and use one less variable! 05:59 ShadowNinja Also, RAII will handle tmp.close(), so either ommit it or be consistent and use it in the break condition too. 05:59 Zeno` there is no good for it being in the break condition 05:59 Zeno` because it's not open :) 06:00 Zeno` but yeah, the reason is that tmp was original not scope limited; I'll remove it 06:01 ShadowNinja Otherwise looks good. 06:01 Warr1024 holy shit, the whole time I had 2 minetests installed and was testing the wrong one 06:01 Warr1024 did the android package ID's change or something? 06:01 ShadowNinja G'night. 06:02 Zeno` I suppose 1000 - max_tries, but then it's used in a condition and as a paramater so I'd put it in a variable anyway for readability 06:02 Zeno` night 06:03 Zeno` never mind my last comment I am going mad... looking at 5 things at once 06:04 Zeno` I still have to put it into a constant so that I can do if (serial == 1000) { // no filename found } :/ 06:04 hmmmm hey any news on the mailing list? 06:04 Zeno` I'll make it a #define I guess 06:08 Zeno` what mailing list? 06:08 hmmmm shadowninja i thought was supposed to make a mailing list 06:09 Zeno` oh 06:09 hmmmm i need a place to articulate my design for client-side modding 06:09 hmmmm and other stuff 06:11 Zeno` I'd rather a wiki or something than a mailing list, but I guess mailing list is more "unix like" heh 06:17 hmmmm oh man 06:17 hmmmm i don't think anybody could ever get done with minetest in a single lifetime 06:17 hmmmm there's just soo much shit todo 06:18 hmmmm every once in a while i like to organize my tasks and i get bewildered by the new load of crap i am taking on 06:20 Warr1024 hmmmm: do you ever PLAY the game, or do you just hack on it all the time? 06:20 hmmmm the latter 06:21 hmmmm i haven't actually played minetest in over 2 years 06:21 Warr1024 daaaaaamn 06:21 Warr1024 every now and then you've got to enjoy the fruits of your labor 06:21 hmmmm honestly 75% of my labor is for the modders 06:29 Zeno` what order should I check your PRs in, Warr1024? 06:30 Warr1024 any order, I think 06:31 Warr1024 I cherry-pick them into my own "fork", so they don't collide with one another, as far as I know 06:31 Warr1024 that fix for the texture scaling thing (again) is probably highest prio 06:31 Zeno` not worried about that... was more worried about, yes, order of importance 06:31 Zeno` ok I'll test 2579 first 06:32 Warr1024 yeah, that's the important one 06:32 Warr1024 then the gui scaling one 06:32 Warr1024 then ... then, I think I'll be out of outstanding PR's. 06:32 Warr1024 that android texture one got closed by github automatically, probably due to me cleaning up a branch I was actually still using. 06:33 Warr1024 I was going to wait to reopen it after the gui scaling one went in, though, so I won't have to hear *quite* as much "the texture still look like ass, we need to redo it all" complaining. 06:33 Zeno` I have no real comments looking at the src code of 2579, apart from else if (part_of_name.substr(0,19) == "[autoupscaleformesh") 06:34 Zeno` I don't like the 19 :) 06:34 Warr1024 it matches the 10 up above it :-) 06:35 Warr1024 frankly, I'd rather have a string.startsWith(string) method, but I don't know that much C++, and saw existing code that used the pattern, so I when-in-romed it. 06:35 Zeno` I need to look at the non-diff version 06:35 Zeno` I was just going to ask if there was a startsWith() function 06:35 Zeno` surely it exists :/ 06:36 Warr1024 dunno, though if there is, then there's more code you'll want to fix in that general area ;-) 06:36 Zeno` oh of course; we're always fixing things when we are in the "code vicinity" 06:36 Zeno` kind of fix as we go hehe 06:37 Warr1024 yeah, as long as it doesn't scope-creep to the point where we end up messing up the original merge. 06:37 Zeno` str_starts_with 06:37 Zeno` yeah only if it's really close to what's being changed 06:38 Zeno` e.g. same function that's being modified or something reasonable 06:38 Zeno` anyway 06:38 Zeno` testing 06:38 Zeno` dunno why 06:38 Zeno` hehe 06:38 Zeno` just part of the routine :P 06:38 Warr1024 yeah, originally my code didn't work because I copied that substr(0,10) too closely from above, including the 10 06:40 Warr1024 but, ultimately, every piece of shitty code that I've ever written works better than any of the beautiful code I haven't gotten around to writing yet. 06:40 Zeno` grr, whitespace errors 06:40 Warr1024 oh, in my stuff? 06:40 Zeno` err I have to add something to minetest.conf don't I 06:40 Warr1024 sorry, I'm never gonna get used to if (cond) 06:41 Warr1024 shouldn't have to muck with config for that PR. 06:41 Warr1024 er, you're stll on 2579, right? 06:41 Zeno` I guess so 06:41 Zeno` lol, yes :) 06:42 Zeno` http://dpaste.com/1F8W3GS 06:42 Warr1024 yeah, it shouldn't need any new config, it's just a bugfix, basically. 06:42 Zeno` what am I testing then hehe 06:42 Zeno` everything looks fine 06:42 Warr1024 well, we know that custom huds that don't use scaling, custom crosshairs, and custom sun/moon tonemaps have been issues before 06:42 Warr1024 those should all be fixed. 06:43 Warr1024 I tried out that server listed in the Issue report 06:43 Zeno` oh ok.. I have that test here 06:43 Warr1024 2558 I think it was 06:43 Warr1024 dunno about a custom crosshair 06:43 Zeno` sun/moon is fine 06:43 Warr1024 VanessaE's HDX pack has a sun with custom tonemap 06:43 Zeno` I'm fine with the PR 06:43 Zeno` yep 06:43 Warr1024 cool 06:44 Zeno` hmmmm, you ok with #2579 also? 06:44 ShadowBot https://github.com/minetest/minetest/issues/2579 -- Move texture_min_size even further down the pipe. by Warr1024 06:44 Warr1024 sounds like we've finally whack-a-mole'd the last of the collateral damage 06:44 hmmmm oh gosh, this is the cause of the hud scaling bug? 06:44 hmmmm i wonder if this fixes the ^[combine bug as well 06:45 Warr1024 most of the time, when we use a "texture", it's bound to a mesh, and so it stretches/shrinks to fit the polygon 06:45 Warr1024 but sometimes, sort of randomly, we use "textures" as if they're "images" and have their own dimension, as well as resolution. 06:46 * Zeno` quickly builds for Android 06:46 Warr1024 upscaling all the textures at load time works great for minetest_game, but there are a lot of features that assume we won't mess with the textres. 06:46 hmmmm lol those ^[things 06:46 hmmmm they're so hacky 06:46 hmmmm especially using them internally like that 06:46 hmmmm what are ya gonna do though 06:46 Warr1024 yeah 06:46 hmmmm looks good to me 06:46 Warr1024 it always seemed weird to me that in _game, glass used inventorycube 06:46 Warr1024 even though presumably a regular RTT should have worked. 06:46 Warr1024 and I think this predated connected glass 06:47 Warr1024 the difference is that RTT worked ok on my particular android device without inventory_image_hack, but [inventorycube didn't. 06:47 Zeno` hud fixed, sun fixed, works on android 06:47 Zeno` I'll merge ;) 06:47 hmmmm wait, maybe i'm just not seeing it, but where did the textureMinSizeUpscale call go? 06:47 Zeno` after I wait 06:48 Zeno` heh 06:48 hmmmm oh nevermind that's not needed anymore 06:48 hmmmm derrp 06:49 hmmmm the entire function got replaced by the ^[thingie 06:49 Warr1024 yeah, since that's the only place it'll be used 06:49 hmmmm here i just thought some text moved around 06:49 Warr1024 I'm not sure if we'd really WANT people to reuse that function ;-) 06:55 Zeno` ok, I'll just fix the whitespace errors quickly 06:55 Warr1024 thanks 06:56 Zeno` done and dusted 06:57 Warr1024 awesome 07:01 Warr1024 should #2558 be closed too, then? 07:01 ShadowBot https://github.com/minetest/minetest/issues/2558 -- HUD texture scaling bug? (verified using Wuzzys "hudbars" mod) 07:05 nrzkt hmmmm : http://irc.minetest.ru/minetest-dev/2015-03-31#i_4206667 => Failed command queues must be sent in FIFO mode. If you talk about the pop which is done and next a push_front, yes we could have a little improvement here, pop in a else and then we doesn't need a push_front, if it's what you are talking about. 07:06 nrzkt push_front is done on fail. I only keep the original algorithm, but in fact it could be improved to reduce operations, right. 07:09 Zeno` yes it should Warr1024 :) 07:09 Zeno` sorry I went afk when I merged 07:09 Zeno` gotta run, got company :) 07:11 nrzkt hmmmm: do you confirm the improvement ? 07:12 hmmmm was that behavior originally there before the network rework? 07:12 hmmmm just wondering 07:12 nrzkt yes 07:12 nrzkt when i replace list by queue, i forget to restore the FIFO there, then it's now fixed by use a deque 07:12 hmmmm failed command means a dropped reliable packet, correct? 07:13 hmmmm hrmm I wonder how this affected network performance in practice 07:13 hmmmm or what effects it did have anyway 07:14 nrzkt i verify 07:15 nrzkt as i see it's when have_sequence_number == false 07:15 hmmmm ah 07:15 nrzkt it's on sending not in receive 07:15 nrzkt u16 Channel::getOutgoingSequenceNumber(bool& successfull) is false 07:16 nrzkt if (((u16)(next_outgoing_seqnum - lowest_unacked_seqnumber)) > window_size) or if ((next_outgoing_seqnum + (u16)(SEQNUM_MAX - lowest_unacked_seqnumber)) > 07:16 nrzkt window_size) { 07:16 nrzkt failed 07:16 nrzkt then it's a pure generating failed but to window_size 07:17 nrzkt then the packet must be resent first, not last 07:19 nrzkt hmmmm: this is perfectly normal, but i think we can change the algo to pop_front only on success, then no push_front is needed, right ? 07:19 hmmmm hrmmm 07:19 hmmmm thinking 07:20 nrzkt this is exactly same, because if we fail, we pop_front and then we push_front the came command. 07:21 nrzkt same* 07:23 hmmmm oh I see it 07:23 hmmmm yeah that's fine 07:23 hmmmm i was looking at the wrong piece of code lol 07:23 nrzkt okay :) 07:23 nrzkt https://github.com/nerzhul/minetest/commit/d4cbba40684d8ed6f03bc55f5c5785fbe49132ec was okay then ? 07:23 hmmmm sure 07:24 nrzkt i push it now 07:24 hmmmm oh wait just one thing 07:24 nrzkt yes ? 07:24 hmmmm i hope you realize we don't use soupstroup if/elseif/else bracing style right 07:24 hmmmm stroustroup rather 07:25 nrzkt what is soupstroup ? 07:25 hmmmm lol 07:25 hmmmm stroustrup 07:25 hmmmm the style where it's: 07:25 hmmmm if (something) { 07:25 hmmmm blah; 07:25 nrzkt google translate doesn't recognize the word 07:25 hmmmm } 07:25 hmmmm else (something_else) { 07:25 hmmmm ... 07:25 hmmmm } 07:25 nrzkt yes, where did you see a problem here ? 07:26 hmmmm http://en.wikipedia.org/wiki/Indent_style#Variant:_Stroustrup 07:26 hmmmm minetest uses the Linux kernel bracing style 07:26 hmmmm like this: http://en.wikipedia.org/wiki/Indent_style#Kernel_style 07:27 hmmmm just FYI 07:27 nrzkt maybe i'm not correctly awake, but i don't see the difference xD 07:27 hmmmm one has the else on the same line as the closing bracket for the if 07:28 nrzkt oh i see 07:28 hmmmm i figured i'd finally tell you about that 07:28 nrzkt erf i always used this style in my commits and i don't see this correctly when i read the coding style, so subtile 07:28 hmmmm it's no biggie 07:29 nrzkt fixing it and pushing it 07:29 hmmmm well OK 07:30 nrzkt done 07:51 sfan5 [...] 07:51 sfan5 } 07:51 sfan5 else (cond) { [...] 07:51 sfan5 we use that style? 07:51 hmmmm no we *don't* use that style 07:51 sfan5 ok, good 07:51 sfan5 i never used that style 08:58 nrzkt i do a last test on my live server with all packets, and i will push a modification on Connection::Receive to remove a useless and long existing copy from Buffer to SharedBuffer to NetworkPacket. With this modification Buffer will be copied directly to NetworkPacket 11:21 Zeno` I'll fix it now 11:23 Zeno` #2583 I mean 11:23 ShadowBot https://github.com/minetest/minetest/issues/2583 -- Memory Leak with gettext 11:23 Zeno` it's not a leak; it's an unitialised variable 11:26 Zeno` pushed 12:07 nrzkt thanks Zeno` 12:07 nrzkt as you see kilbith has a second memleak in the reporting : http://pastie.org/10064554 but i haven't :s 12:08 Zeno` neither do I 12:09 nrzkt maybe a bug in the ubuntu packaging 12:29 Zeno` I don't know 12:29 Zeno` kilbith, does translation *work*? 12:29 rubenwardy #2527 12:29 ShadowBot https://github.com/minetest/minetest/issues/2527 -- Red Sun When sun.png is Used 12:29 rubenwardy ..no 12:30 rubenwardy #2575 12:30 ShadowBot https://github.com/minetest/minetest/issues/2575 -- Add texture overriding by rubenwardy 12:30 kilbith Zeno`, yes perfectly 12:30 Zeno` kilbith, ok well it might need more tracking down. Perhaps it's been there for a long time 12:30 Zeno` a bisect would be good 14:18 srifqi Zeno` 14:18 Zeno` srifqi 14:19 srifqi Zeno`: sorry for asking you again. But can you please check #2561? 14:19 ShadowBot https://github.com/minetest/minetest/issues/2561 -- Add mapgen specific flags to create world dialog by srifqi 14:19 Zeno` Does it now work if the world isn't actually created? 14:21 srifqi Yes, it still can run, with default settings applied everytime the dialog opened 14:25 srifqi nrzkt 14:29 srifqi Okay, just want to ask, why does #2561 do not have any labels? 14:29 ShadowBot https://github.com/minetest/minetest/issues/2561 -- Add mapgen specific flags to create world dialog by srifqi 14:48 nrzkt srfqi ? what do you want ? 14:53 srifqi okay, canceled, nrzkt, sorry for disturbing 16:14 ekem anyone thought about using doxygen with the project yet? 16:32 kahrl ekem, yes, that's why there is a doc/Doxyfile.in :) 17:18 hmmmm man wtf 17:18 hmmmm is it just me or does luajit make things difficult to debug 17:19 hmmmm every time a segfault happens inside of an api, it ends up in this __cxa_end_catch() and I lose all the helpful backtrace information 17:24 hmmmm odd, for some reason -lfreetype isn't found if ENABLE_FREETYPE but not ENABLE_LUAJIT 17:31 Krock \o/ GetText has been fixed! 19:53 neoascetic Hi all. Is there a better way to put text on some object then in signs mod? 19:54 VanessaE not at present. 19:54 VanessaE RealBadAngel was working on a VGA text drawtype/modification 19:55 VanessaE but it has not been released yet 19:55 VanessaE and he's awol 19:57 est31 !g awol 19:57 ShadowBot est31: http://www.urbandictionary.com/define.php?term=AWOL | Absent Without Official Leave: A term used in the United States Military to describe a soldier or other military member who has left his or her pos... 19:58 est31 ~tell PilzAdam you shouldn't be bothered by emails anymore, I've fixed the daily build for precise. 19:58 ShadowBot est31: O.K. 19:59 VanessaE ...it also means generally having disappeared without some good reason. 21:40 est31 http://pastie.org/10065697 21:40 est31 ^ big problem 21:40 est31 happens at server start 21:50 est31 *reproducably* 21:50 VanessaE est31: check your player files and things like env_meta.txt 21:50 VanessaE something is missing EnvArgsEnd 21:50 VanessaE in fact check that file, first. 21:50 VanessaE bet you it's empty 21:51 Warr1024 that's why I've been wanting to switch to storing non-mapblock world content in the key/value store 21:52 Warr1024 most of those systems have better protection against partial writes than the filesystem 21:52 est31 eww 21:52 est31 yea 21:52 est31 that was the problem 21:52 * est31 tries to rm 21:53 Warr1024 restore from backup 21:53 VanessaE nah, replace it with some useful content, 21:53 VanessaE game_time = 46994015 21:53 VanessaE time_of_day = 6999 21:53 VanessaE EnvArgsEnd 21:54 est31 btw whats game_time all about? 21:54 VanessaE idk 21:54 Warr1024 isn't that the internal game clock, running since world start? 21:54 est31 ok seems to work 21:55 VanessaE sure, but why's it saved? 21:55 Warr1024 that's probably in case you want to do stuff like an abm that handles plant growth but compensates for the time the block wasn't active 21:55 Warr1024 also stuff like entity ttl's 21:55 VanessaE I doubt that 21:55 VanessaE wouldn't the server keep its clock internally? 21:55 est31 I think thats also the way the master serverlist checks a server's age 21:56 Warr1024 yes, it'd keep the clock internally in that variable in that file. 21:56 Warr1024 the time-of-day clock is separate from the age-of-the-world clock 21:56 Warr1024 since an admin can set the time of day 21:56 est31 btw there is no key value store 21:56 Warr1024 est31: o rly? then where do your mapblocks get stored? 21:56 est31 Warr1024, in different backends, some with key value stores, some not 21:57 Warr1024 from what I've seen, all backends are key/value stores 21:57 Warr1024 i.e. the interface is basically that of a key/value store 21:57 est31 yes, but only mapblocks are stored there, AFAIK 21:57 Warr1024 yeah, but it doesn't have to be that way 21:58 Warr1024 it could have some benefits 21:58 Warr1024 for instance, a lot of back-ends have better reliability than filesystems, which seem to be often configured to run more asynchronously than is strictly healthy 21:58 est31 in fact, not even the interface is the one of a real key value store 21:58 est31 because its getting position params 21:59 est31 and not the mapblock hash 21:59 Warr1024 hm, that's kind of funny 21:59 Warr1024 I guess then it's a compound key, anyway 21:59 est31 https://github.com/minetest/minetest/blob/master/src/database.h 21:59 Warr1024 most of the actual back-ends we use, though, could offer storage for more than just mapblocks 22:00 est31 seems like a good idea. 22:00 est31 however sql for example should store it in a separate table 22:00 Warr1024 yeah 22:01 Warr1024 I think redis has separate collections 22:01 Warr1024 or even if it doesn't, just use the filename as the key in key/value store 22:01 Warr1024 and it won't collide with any mapblock addresses anyway 22:01 est31 filename? 22:01 Warr1024 or even a hash of the filename 22:01 Warr1024 well, things that aren't mapblocks are currently addressed by filename 22:02 Warr1024 things like the *_meta.txt files and whatever mod content. 22:02 Warr1024 I'm pretty sure that we're not doing "safe writes" 22:02 est31 I dont see any beauty in appending .txt to every key. 22:03 Warr1024 they're not possible on some platforms we're portable to, like Windows, and on the others that supposedly offer them, they're often defeated by filesystem options in the name of performance. 22:03 est31 could live with "env_meta" though 22:03 Warr1024 est31: we wouldn't be appending .txt. We'd just be not stripping it off. 22:04 est31 Warr1024, which files do you propose to be moved to the db? 22:04 Warr1024 Whether there's a .txt in the key is a trivial point, anyway. 22:04 Warr1024 I think the hard part is making it actually work 22:04 est31 agreed, bikeshedding 22:04 Warr1024 esp. the lua side. 22:04 Warr1024 ideally, I'd like to see any file that's written by the server go in there 22:05 Warr1024 i.e. everything but configuration, built-ins, assets, installed mods, etc. 22:05 Warr1024 anything mutable at runtime 22:05 Warr1024 which would mean a lot of interception of the io stuff in lua, to capture mod content 22:05 Warr1024 like for instance, I think mesecons keeps track of some things in separate custom files 22:05 Warr1024 but, since they're mutable at runtime, they run the risk of being written partially and corrupted on a hard restart 22:06 Warr1024 I'd like the *option* to write them into the same store as the mapblocks, in a way more-or-less transparent, if possible, to the mods themselves. 22:06 est31 transparency is bad 22:06 Warr1024 stores like redis might offer better performance than the filesystem, and most stores will offer better reliability against partial writes. 22:06 est31 we need separate interfaces at least 22:07 est31 because mods might place their own config files for example 22:07 Warr1024 est31: what I mean is that I don't want to have to rewrite every mod out there that currently writes to files naively 22:07 est31 and those are only read 22:07 Warr1024 well, to do it transparently, we'd have to check the backend first, and if the value is not present, pull it from the filesystem 22:07 Warr1024 anything written at runtime would go into the db backend, thus overriding what was on disk 22:08 Warr1024 a mod can't, by definition, write something that's only read. 22:08 est31 the file on disk should be deleted then though to forestall confusion. 22:08 est31 on a write 22:08 Warr1024 could be done 22:08 Warr1024 or rename to .OLD or something 22:09 est31 also, storing it in a map.db file isn't a good name 22:09 Warr1024 maybe, maybe not 22:09 est31 perhaps a separate database file just for those params` 22:09 Warr1024 a lot of the content that'll go into it IS part of the world, logically 22:09 Warr1024 it'd create an interesting opportunity to have single-file worlds, for one thing... 22:10 est31 you can have that already now too 22:10 Warr1024 oh? 22:10 est31 all my worlds are stored in a single file, /dev/sda10 22:10 Warr1024 high larious. 22:11 Warr1024 that's certainly not an ideal format for sharing 22:11 est31 on decent operating systems, you can mount zip files as read-write. 22:12 Warr1024 yeah, but creating zip files, let's be honest, may be beyond the capabilities of some users 22:12 Warr1024 also, if your back-end is sqlite, mounting a zip file is certainly going to be a nightmare 22:12 est31 why so? 22:13 Warr1024 you're talking about storing a random-access database inside a compressed chunk inside a random-access database 22:13 Warr1024 except I don't think zip allows for unused space...? 22:13 est31 also map databases realyy benefit from compression 22:13 Warr1024 so if you modify the chunk near the beginning of the sqlite fie 22:13 Warr1024 it has to recompress the entire sqlite file 22:13 Warr1024 except if the new size is different from the original size, it has to rewrite all the zip content after that point too 22:14 Warr1024 also, no idea how safe writes will work 22:14 Warr1024 it'll have to create the journal or write-ahead log, write the data to that, then process the commit and clean it up... 22:14 Warr1024 I can't image doing that transparently with a zip file 22:15 Warr1024 assuming that you get any reasonable level of performance, that can only come at the cost of interfering with the safety features of the journal to begin with. 22:15 Warr1024 leveldb and redis work a bit differently, writing out periodic snapshots, but they still need to be able to write new content and delete old content, which would cause a zip file to be rewritten 22:15 Warr1024 the only way to effectively handle compression for a world database in realtime is to compress mapblocks independently... 22:16 est31 btw, the fs the server is on, does support journalling 22:16 est31 the problem was more with minetest I guess 22:16 Warr1024 journalling is not a panacea 22:17 Warr1024 for instance if you're on ext4, by default, it only journals metadata, NOT content data. 22:17 Warr1024 just to make sure the filesystem doesn't end up in a corrupt state, not to guarantee that your data is written out 22:17 Warr1024 to correctly write a file without risk of truncation, you'd have to (1) write it to a new location, (2) call fsync(), then (3) rename the new file over the old one. 22:18 est31 interesting 22:18 Warr1024 the fsync call is often defeated by mount options by people seeking speed at the expense of accuracy 22:18 Warr1024 and the "rename new file over old one" is not possible on Windows 22:18 Warr1024 it must be one atomic operation, but Windows requires you to unlink/delete the old file first. 22:19 Warr1024 since they're 2 separate ops, you might crash between the delete and the rename 22:19 Warr1024 turning off the metadata journal (optional in ext) will similarly prevent your writes from being 100% safe. 22:19 Warr1024 I mean, there MIGHT be a bug in MT. 22:19 Warr1024 but this might also be an issue. 22:20 Warr1024 I've had some corruption of the world metadata files before due to crashes and hard freezes at the OS level before. 22:20 Warr1024 but the sqlite/leveldb files I've used have never, as far as I've seen, been corrupted by them. 22:21 Warr1024 I'm really interested in Redis as a really good balance between speed and safety for MT, but without the option to connect to a unix-domain socket, it's not secure enough for my purposes, running on a multi-user system. 22:21 Warr1024 was thinking about adding a patch for it; shouldn't be too hard to do. 22:22 est31 yea that would be really cool 22:22 est31 bye now 22:22 Warr1024 l8r 22:29 Warr1024 it looks like #2522 was fixed by #2567, but it wasn't closed... 22:29 ShadowBot https://github.com/minetest/minetest/issues/2522 -- Android: fast_move only works with free_move enabled 22:29 ShadowBot https://github.com/minetest/minetest/issues/2567 -- On Android enable always fast by Zeno- 22:39 celeron55 i have decided to switch the name of Minetest back to Communismcraft 22:41 VanessaE O_o 22:52 hmmmm aha 22:53 hmmmm who would've known that /dev/ptmx was deprecated on freebsd... 23:47 hmmmm weird, for some reason Player::m_mutex is not initialized 23:48 hmmmm i think it could possibly be class copy semantics 23:49 hmmmm ServerEnvironment::loadPlayer() has this line where *player = testplayer 23:49 hmmmm I can't help but wonder if that does something to an uninitialized mutex 23:49 hmmmm ah yes, a dangling reference 23:50 hmmmm when loadPlayer() returns, RemotePlayer testplayer falls out of scope and deinitializes its own copy of the same mutex copied 23:50 hmmmm i can't help but notice that i didn't see any bug reports about this lately. what's up with that?