Time Nick Message 00:06 Hijiri is river water going to be a flowy finite liquid? 00:07 paramat no way =) 00:07 Hijiri o-ok 00:08 paramat the whole river would drain into the ocean if it was heh 00:14 * Sokomine can't resist to think about liquid mobs that'd move around the map like liquids...flowing from a to b... 00:14 * Sokomine picks up a bucket and removes the liquid before anything happens 00:17 Hijiri like the lava monster mod for infiniminer? 00:18 Sokomine i don't know them. there are some decorative lava mobs in i believe zeg9s mob modpack. they wobble around a bit 00:20 Hijiri the lavamonster thing was a popular plugin for a modded version of infiniminer, the game would create a "snake" of lava that would follow the nearest player 00:20 Hijiri I think you could kill it by detonating explosives when it was near, but I don't remember 00:25 paramat i might push the river water PR later since i have simplified it on PilzAdam's request, have hmmmmm's approval and since it's partly a mapgen issue 00:39 hmmmm i wouldn't be too pushy about things like this 00:39 hmmmm that's a great way to gain distrust 00:40 paramat it's risky, i guess i can wait a day 00:54 paramat ugh my crazy scatter-brained judgement =/ 03:36 Zeno` wth... the damage tilt/flash bug isn't fixed yet? 03:38 VanessaE nope. 03:38 Zeno` it's a single line (if that) fix 03:39 Zeno` I'll give it one more day and just do it myself :/ 03:39 Zeno` I thought the person who introduced the bug would have fixed it by now TBH 03:39 VanessaE you're talking damage-disabled/creative mode right? 03:40 Zeno` yeah 03:40 VanessaE (I can stand in a swarm of bees all day long and watch the flash/tilt effect from the bees trying to injure me) 03:40 Zeno` yes that one. 03:40 Zeno` it's a very very simple fix 03:44 Zeno` Is he here now? 03:44 Zeno` (I know his nick isn't hehe) 03:45 Zeno` That should have been fixed as soon as I gave the bisect. Lucky it's not critical 04:25 paramat http://i.imgur.com/ZZe6a5b.png slice of a 4D mandelbrot. surprising thing is the shape improves (smoother, more continuous) with fewer iterations, here only 12, makes mapgen faster 04:29 Zeno` looks like a flying fish 04:30 Zeno` fractals are supposed to get more complexity (less smooth) with more iterations :P 04:30 Zeno` So I don't think it's surprising :) 04:30 paramat exactly 04:30 paramat i was about to use blur, then remembered that 04:31 Zeno` what is that square thing on the fish's tail? 04:31 Zeno` a dungeon? 04:40 paramat slice of dungeon 04:51 hmmmm is this really what we want?? https://github.com/minetest/minetest/commit/ca5df44edb1963d4c634390d33229ec928e284dc#diff-59f99d02fe5b328bb9a57b023497b5edR390 04:52 hmmmm it seems to me like this totally breaks the concept behind RUN_IN_PLACE for Mac OS X 05:21 Zeno` odd. I'm not sure if --world and --worldname are handled correctly 05:21 Zeno` hmm 05:22 Zeno` well maybe there are 05:22 Zeno` what would be the way to start a simple single player game and skip the main menu? 05:24 Zeno` /home/gruehunter/minetest/bin/minetest --config ~/.minetest/minetest.conf --worldname ram-test --go --random-input --address '' works 05:24 Zeno` :/ 05:24 * Zeno` trembles in fear 05:29 Zeno` The comments given by minetest --help are kind of misleading 05:30 Zeno` "--world Set world path (implies local game)" and "--address Address to connect to. ('' = local game)" are referring to two different things when they say "local game" 06:04 hmmmm wth 06:04 hmmmm too many things require an overhaul 06:04 hmmmm i say we just scrap it and start over from scratch =] 06:05 hmmmm total rewrite of minetest 06:05 VanessaE O_o 06:05 * VanessaE dies 06:05 hmmmm lol 06:05 VanessaE appropriate you should say this now: 06:05 VanessaE you're joking of course, about flushing the existing codebase down the toilet... 06:06 hmmmm dead serious 06:06 VanessaE I'm in the middle of modeling a toilet to replace the one in homedecor right now :) 06:06 hmmmm I'm about to blank all the source files and commit it 06:06 hmmmm somebody can then make a github issue that the game doesn't exist any longer 06:06 hmmmm "it sucks. we blew it up" 06:10 hmmmm it's sorta like this video: https://www.youtube.com/watch?feature=player_detailpage&v=KR2cjZJQoww#t=57 06:23 hmmmm whoops, turns out that Irrlicht was a dependency of the server the whole while thanks to a typo in porting.cpp 06:24 est31 O-o 06:40 Zeno` let's do it 06:40 * Zeno` presses the big red button 06:48 Zeno` https://www.youtube.com/watch?v=RMXpnTJ1Lx4 06:49 est31 "Ends as expected." 06:49 est31 man why is a spoiler there? 06:53 hmmmm I guess those guys had a blast 06:57 Zeno` the cow pad kind of does look like a mine 06:58 Zeno` well, I'm sick of input handler now... and all I've done is move some stuff around, lol 06:59 hmmmm i know that feel bro 07:00 hmmmm it started out with me wanting to add solaris support for initializePaths 07:00 hmmmm and it ends up with me basically refactoring the entire porting.cpp because i find so many problems and messiness that i can't work in 07:00 hmmmm you really need to put blinders on to the messiness if you want to stay focused 07:01 hmmmm i told myself that i'd have this patch done by 1:30 or else, and it's already 3 07:02 Zeno` well I almost ended up changing stuff in main.cpp... kind of hard to remain focused sometimes when looking at stuff leads you to having to look at other stuff and realising the other stuff needs fixing/changing/cleaning also 07:02 est31 yea I know that 07:02 hmmmm minetest is a full time job 07:02 hmmmm i wish sane, efficient abstractions were chosen the first time around though 07:02 est31 yesterday I had to fix the wstring stuff for translatePassword, because I didn't like to add wstring to my code 07:03 est31 (thanks to ShadowNinja for pointing this out) 07:08 Zeno` Is there a fallback mechanism for your SRP, est31? 07:08 Zeno` i.e. for existing users using an insecure password? 07:09 hmmmm hrmm 07:10 hmmmm is defined(__SVR4) really needed to determine if something is solaris? 07:10 Zeno` something like if (!srp_login(name, password) && insecure_login(name, password)) { // migrate password or tell them to change it } 07:10 Zeno` There is no __SOLARIS ? 07:10 hmmmm nope 07:10 hmmmm there's __sun 07:11 hmmmm I am assuming that __sun && __SVR4 == solaris, otherwise SunOS 07:11 Zeno` I don't know 07:11 est31 Zeno`, yes 07:11 hmmmm SunOS was originally based off of BSD 07:11 Zeno` est31, cool :) I still don't like the MP lib being in the src tree though 07:11 hmmmm when they switched the name to Solaris they also switched the base to SVR4 07:11 est31 the server looks up the password entry from the auth handler 07:12 Zeno` SunOS is a derivative of BSD? 07:12 est31 then it looks whether it is an srp hash 07:12 Zeno` I didn't know that 07:12 hmmmm yes 07:12 est31 if its an srp hash, its doing the srp, if its a traditional password, its still doing srp, but over the traditional has 07:12 est31 kind of matroska here :p 07:13 Zeno` it'd be nice to tell the user to update their password. Maybe that can be done via lua 07:13 est31 user interaction isn't neccessary 07:13 est31 We can directly update the password as part of the protocol 07:13 Zeno` oh 07:13 Zeno` I see 07:13 Zeno` yeah 07:13 Zeno` magic 07:14 est31 the srp over the traditional password will get that mechanism 07:14 est31 yea :) 07:15 est31 so, to summarize: ShadowNinja and Zeno` are against mini-gmp, hmmmm and me are for it. 07:16 Zeno` Why can't the person compiling minetest download it (e.g. we don't include irrlicht in the source tree) 07:16 Zeno` sfan5 would have to update his mingw pre-compiled libs of course 07:17 est31 what about first adding them, then letting everybody migrate, then removing them again? 07:17 est31 eg 1 month of migration time 07:17 Zeno` What advantage would that have? 07:17 sfan5 updating the pre-compiled libs is no problem 07:18 hmmmm well 07:18 hmmmm libgmp is a GNU library 07:18 sfan5 actually 07:18 hmmmm typically GNU libraries give you as much trouble as possible on windows 07:18 sfan5 does it even work out with licenses? 07:18 Zeno` it's LGPL sfan5 07:18 sfan5 i see 07:18 Krock I could try to compile libgmp on here 07:19 hmmmm I dunno 07:19 hmmmm the rationale was to make things more broken by requiring another dependency 07:19 hmmmm more dependencies == more of a chance for things to go wrong 07:19 Zeno` well, that's possible sure 07:20 hmmmm like, I can't even compile minetest using gcc with leveldb enabled 07:20 hmmmm thank goodness it's not a required dependency 07:20 sfan5 are you using ubuntu 12.04, wait no 07:20 sfan5 the leveldb package on 12.04 is completly broken 07:21 Zeno` I've seen your stackoverflow question, hmmmm. You can't even compile int main(void) { return 0; } 07:21 hmmmm yeah man 07:21 hmmmm well no I can compile it, but it doesn't execute 07:21 hmmmm irrlicht is a library with C++ linkage, I'm 99% sure it's caused by an ABI mismatch between clang and gcc 07:22 hmmmm I really cannot advocate using C++ for a library interface to anybody 07:22 est31 @ licenses: it seems I will have to add another copy of mini-gmp (if we decide to add mini-gmp at all), one that isn't LGPLv3+, but one that is LGPLv2.1, like minetest 07:22 hmmmm if you want an object oriented library, make your base API in C and add the OO bits in an include file as a thin wrapper instead 07:23 hmmmm I thought it was LGPL3 or GPL2 07:23 sfan5 tesseract-ocr does it the other way; the base api is c++ and there is some c -> c++ wrapper or something 07:23 hmmmm like, you have a choice 07:23 hmmmm yeah well tesseract-ocr is a piece of shit library just asking for an ABI incompatibility and incredible amounts of frustration when you mix and match compilers for whichever reason 07:25 Zeno` I guess it's not an optional part of the client 07:25 Zeno` how big is it? 07:25 hmmmm libgmp itself is incredibly huge 07:26 hmmmm minigmp is 4000 lines of code in a single .c file 07:26 Zeno` mini-gmp is just one file? 07:26 est31 140k lines 07:26 est31 yes mini-gmp only has two files: header and c 07:27 sfan5 this seems to be exactly like sqlite3; it's going to be a required dependency sooner or later 07:27 sfan5 why not make it like that from the start? 07:27 Zeno` well I guess the first thing to make sure of is that it compiles with mingw and msvc 07:27 Zeno` yeah I thought est31 was including the entire libgmp source 07:27 Krock It's possible to compile a .lib and .dll with mini-gmp 07:28 Zeno` this mini-gmp is more palatable 07:28 hmmmm he did at first until i pointed out there is a mini version 07:28 est31 yup 07:28 hmmmm this comes at a cost.... the mini version is much slower 07:29 hmmmm but yeah generally it's a good idea to bundle libraries because then things simply work 07:29 est31 original gmp takes 40 ms total computation time (client+server), mini-gmp takes 1200ms 07:29 hmmmm it might not be nice from an organizational standpoint though 07:30 Zeno` I don't think performance is an issue 07:30 hmmmm it's okay for clients 07:30 Zeno` I've changed my mind. Now it's not the full-blown library I'm more inclined to vote towards inclusion 07:31 Zeno` I assume the prototypes are the same though, so those *with* libgmp can use it? 07:31 hmmmm yes 07:31 Zeno` well, everyone is happy. Those wanting performance can use the "unsupported" libgmp :D 07:32 hmmmm oh btw est31 did you ever figure out that undefined reference problem 07:32 est31 ? 07:32 est31 what do you mean 07:33 hmmmm i thought you were having an issue compiling on linux because of some undefined reference error 07:33 est31 ah yes 07:33 est31 I have fixed it 07:33 * est31 tries to remember how 07:34 sfan5 why do people keep messing with shit 07:35 sfan5 the windows builds are now names Minetest-something instead of minetest-something 07:35 est31 it has been my own mistake 07:35 est31 sfan5, its most likely SN's build system cleanup patch 07:36 est31 so hmmmm the issue was that there were some functions that I have added during porting 07:37 est31 mostly thin wrappers around functions that are more powerful in gmp than in openssl 07:37 est31 so that I don't have to copy-paste all those invocations 07:38 est31 now the problem has been that I've declared them but forgotten to add "static". 07:38 sfan5 SN also made some but not all endif(USE_CURL) be endif() 07:38 sfan5 it's less readable 07:38 hmmmm ahh okay 07:38 hmmmm makes sense 07:39 est31 somehow gcc compiled them anyway, but clang didnt. 07:40 Zeno` I didn't think inline static made sense... but I guess it does :3 07:41 est31 ? 07:42 Zeno` https://github.com/minetest/minetest/pull/2620/files#diff-765e4fc5d8245871d9a5a4db834e4631R217 07:42 hmmmm haha 07:42 hmmmm oh gosh 07:42 Zeno` I didn't know that was possible. *shrug* 07:42 hmmmm "* sizeof(char)" and "if (ptr) free(ptr)" are sure signs of a C novice =] 07:43 sfan5 hm 07:43 Zeno` I commented two minutes ago on if (ptr) free(ptr) :P 07:43 sfan5 iirc free does not need to take a null ptr 07:43 sfan5 anyway 07:43 est31 seen that comment 07:43 sfan5 i told SN that it's stupid to have project(Minetest) and use lowercase everywhere 07:43 sfan5 a lowercase function* 07:45 Zeno` I'm not sure about these casts, est31 07:45 hmmmm those aren't his casts 07:46 Zeno` e.g. the one on line 228 of string.cpp 07:46 Zeno` oh? 07:46 hmmmm oh 07:46 hmmmm i thought you meant the casting-const-away casts in srp.c 07:46 Zeno` ah, no 07:47 hmmmm those look weird but they're the CSRP author's attempts to make SRPUser a completely opaque data type 07:48 hmmmm in any case I feel like mini-gmp shouldn't be in util/ 07:48 hmmmm maybe its own directory huh 07:48 Zeno` yeah 07:48 est31 good idea 07:49 hmmmm eventually i'd like to move these all into a third_party/ directory or something 07:49 Zeno` yep 07:49 est31 what about the sha function files I added? 07:49 Zeno` nice work btw est31 07:49 hmmmm that's okay because there's already a sha1 in util 07:49 hmmmm yeah nice work 07:49 Zeno` ok, I'll bbl 07:50 hmmmm i need to look at it better 07:50 hmmmm it looks great so far though 07:51 est31 I have to do some polishing still 07:52 est31 eg freeing some buffers given to csrp 07:52 hmmmm i don't think the SRP things should be in util/string.cpp at all 07:52 hmmmm that's definitely out of place 07:52 est31 its where translatepassword is 07:52 hmmmm translatepassword shouldn't be there either 07:53 hmmmm like wtf that has nothing to do with strings 07:53 hmmmm that has to do with auth 07:53 est31 also those functions only do the verification key calculation 07:53 est31 so make new file util/auth.cpp? 07:53 hmmmm maybe there should be a new file, like util/ 07:53 hmmmm yeah. 07:53 est31 ok 07:53 hmmmm that's exactly what i was in the process of typing 07:53 est31 :D 10:40 est31 now why is this happening: https://travis-ci.org/minetest/minetest/jobs/59017470 10:40 est31 nothing changed 10:40 est31 ok I've moved mini-gmp into its own directory 10:40 est31 but still 10:41 est31 only theory I have right now is that it didn't work all the time 10:41 est31 and always used mini-gmp 10:46 est31 I mean the invocation of the compiler *does* get a -lgmp 10:47 est31 and the compilers man pages sais the compiler then searches for .a files in standard paths 11:29 est31 ok travis successfully builds now .. USING REAL LIBGMP FOR THE FIRST TIME 12:02 cd2 hi 12:04 cd2 whats the type of client->getNodeDefManager()->get(n).name? (game.cpp - class Game) 12:05 nrzkt std::string (struct ContentFeatures) 12:06 cd2 thx 12:07 cd2 but, Why dont that works? if(nodedef->get(n).name == (std::string)"default:stone") 12:08 nrzkt strcmp ? 12:08 est31 first you dont need the cast 12:08 est31 in c++ you can directly compare using == 12:09 cd2 est31 : i know 12:10 cd2 oh, right - I didnt mind strcmp :) 12:11 est31 strcmp isnt c++ style 12:13 nrzkt it's libc, C not C++ 12:23 cd2 yay, strcmp works 12:24 cd2 It works very very very great XD, thank you for helping 12:26 est31 strcmp is good for 0 terminated strings 12:26 est31 but not when the string holds binary data 12:26 est31 then == is better 12:26 est31 I mean the only working one 13:01 Zeno` nrzkt, the tilt/damage flash bug isn't fixed yet? :( 13:01 nrzkt *i was in holiday in a foreign country 13:02 Zeno` I don't recall you asking permission to have a holiday away from minetest 13:02 Zeno` :P 13:02 nrzkt tsss :) 14:45 ElectronLibre Hello, I need opinions on game#494 which I crafted from Ombridride's one (game#492) and improved as PilzAdam told Ombridride to, please (I'm working on the PR because he is occupied). 14:45 ShadowBot https://github.com/minetest/minetest_game/issues/494 -- Simplified flowers registration by LeMagnesium 17:28 nrzkt est31: deployed with u16 could be great. u8 is too low, if we are doing a new protocol it's better i think 17:28 nrzkt to prevent a very very future incrementation 17:29 est31 I'm only doing the srp 17:30 nrzkt okay 17:30 est31 I also make the client send the v25 packet, but only if v25 is activated 17:31 est31 so we can freely change v25 17:31 est31 until we think its stable 17:31 est31 then we increment the number 17:31 est31 and everybody can test it 17:31 est31 then we wait until everybody has tested 17:31 est31 then we release :) 17:32 nrzkt i will add more network changes with this protocol next weeks, low layer modifications 17:42 jin_xi #2605 is a 2 line change to fix a bad bug with particle spawners. can someone please review? 17:42 ShadowBot https://github.com/minetest/minetest/issues/2605 -- fix particles oversight by obneq 17:44 est31 can you provide some code to reproduce the issue? 17:44 est31 ShadowNinja has labeled it unconfirmed 17:45 jin_xi http://paste.ubuntu.com/10845979/ 17:45 VanessaE https://github.com/VanessaE/homedecor_modpack/commit/fb768d039dd7277e9f8ad56014485618f67d8eb7 17:45 VanessaE at line 185, set the time to zero 17:46 VanessaE (this commit is waiting for some code by me, and for jin's fix so that I can set the time to 0 for real) 17:47 jin_xi try my test mod, set time to 0 to see this bug 17:47 jin_xi also try some expiring spawners and see server ids never freed 17:47 jin_xi #2602 adresses this issue if you want to confirm that as well 17:47 ShadowBot https://github.com/minetest/minetest/issues/2602 -- move particle spawners to env by obneq 17:51 nrzkt the code seems correct, because the particle is created but never used... also this is a memleak because we affect particle without deleting it 17:57 est31 no there is no leak 17:57 est31 look at particles.cpp line 376 17:58 jin_xi non expiring spawners new particles are never added to update queue atm so they are never expired 17:58 jin_xi so placing spawner with time 0 results in growing blob of non moving particles 18:00 jin_xi just compare lines 271 and 311 and immediately after new Particle() 18:08 jin_xi http://i.imgur.com/mcA6cMi.png here is what i get from a single non expiring spawners after half a minute 18:08 jin_xi note the fps 18:09 est31 I can confirm now 18:13 est31 fine 18:13 est31 Have tested it and works 18:13 est31 nrzkt, can I push it? 18:13 nrzkt you can, no problem for me 18:14 VanessaE jin_xi: *looks at your FPS* wat? 18:14 VanessaE ouch 18:15 jin_xi well particles keep accumulating 18:16 est31 pushed 18:16 jin_xi thank you 18:16 kilbith i tested your 1st attempt for the irrlicht particles... 18:16 kilbith 1st punch, *boom* : -30 FPS 18:18 nrzkt irrlicht particles are very slow on intel GPU. With my AMD GPU it's a little bit better but i think needs a little bit more optimization 18:18 jin_xi weird its fine on my integrated intel 18:19 est31 next time: more explanations, and perhaps sample code would get it merged faster 18:20 nrzkt before merge i will test it on some GPU to be sure 18:22 VanessaE when I tested the original irrlicht particles on my HD6870 GPU at the time (if I remember right), I had to put several thousand particles on-screen before my FPS started to drop below 60 18:22 VanessaE of course that's intel integrated, but you get the point. 18:22 jin_xi est31: bug was not reported for 6 months, fix was merged plenty fast 18:23 jin_xi but you are right. im gonna attach that code to the other issue and also my trivial pathfinder mod to that issue 20:05 est31 hmmmm, found out why wikipedia states that "equivalence" wrongly 20:06 est31 or at least a possible explanation 20:06 est31 there is a website by srp creator thomas wu: http://srp.stanford.edu/ndss.html 20:06 est31 it sais "user passwords are stored in a form that is not plaintext-equivalent to the password itself, so an attacker who captures the password database cannot use it directly to compromise security and gain immediate access to the host" 20:07 est31 That is right, and I guess he has written it because at the time, other protocols were used, where there was a similar requirement 20:07 est31 for example there is one protocol, where the password is directly hashed with the challenge 20:07 est31 pure stupidity, as you can't even store the hash, but have to store the password in clear 20:08 est31 people came up with an ugly hack, not storing the hash, but the internal SHA-1 state 20:08 est31 before finalisation and so 20:08 est31 thats even worse then SHA 20:08 est31 just wanted to share. 20:17 est31 btw, somehow this srp requires vast amount of space 20:17 est31 so you get this in auth.txt: 20:17 est31 est31:$1$eEpP+cmXlMWWza05zJbQZW4AAABkAAAAIQAAAAAAAAA$LX4/UNn38ZWacODx82U3ZecqSa1SXQF+mKtyEDHJBqDc7mnnkl0OVoVQ9HNAfq52iryMI4eV3+liaR4K2COMD3WLoy60AxQQigBxBh4TB0E2Z+PGKqIvsjKpFuCRaT88URqqZzcI8SK+n33sqQ5LenABPmDvIUCoxF24xLow2p627HOECmkRy2MVq+CcJbsm5ufOAzK4y1qcocJcUaMIn4HbedO9aY+bOy41YHPMny35RTh5czSUKbiUDVcJgMPHHfm1KcdIDnRG7Cn3xEzwf6TVKejFS8Enf3XRvj6TigTfgDU69K2ggLldai6xgPSSQ0Sl3FfhBykjESHzzkfUOw:interact,shout:1429388138 20:17 VanessaE O_O 20:25 est31 so it *can* be lowered, but I don't know how secure it would be then 20:25 est31 usual tradeoff 20:25 est31 perhaps we could make a shadow.txt containing the auth data instead? 20:26 est31 but I guess thats another PR 20:26 est31 because the code is quite well separated 20:26 est31 inside lua 20:28 paramat sfan5, ShadowNinja, please can i push game#493 later? 20:28 ShadowBot https://github.com/minetest/minetest_game/issues/493 -- Default: Add river water by paramat 20:33 sfan5 paramat: aside from having a different water for rivers being inconvenient, seems ok 20:45 ShadowNinja paramat: I don't like the seperate water node. I'd prefer a flag in param2 or something like that. 20:46 Calinou yeah, keep it to 1 water node 20:46 Calinou I'd rather see acid/slime 20:49 paramat okay i'll try to figure out how to do that with param2 20:49 paramat if that's possible 20:50 paramat although it may need to be a separate node because the biome API needs to recognise it and replace it 20:51 ShadowNinja All my cleanups are starting to conflict with each other :-( 20:52 hmmmm shadowninja, they're too large 20:52 hmmmm i'm sorry' 20:53 ShadowNinja Yeah. 20:53 hmmmm maybe if they were smaller easily reviewable chunks 20:53 hmmmm and they'd have less of a chance to conflict too 20:55 paramat param1 and param2 are in use for water, i think it will have to be a separate node, since the biome API uses a voxelmanip, i think this will be simpler 20:55 paramat and this will only be used in new mapgen, not mg5/6/7 20:56 ShadowNinja hmmmm: Have you checked https://github.com/minetest/minetest/pull/2628 yet? 20:57 hmmmm for like 5 minutes 20:57 hmmmm 64 files changed, lol 20:57 ShadowNinja (fixing Android build now, aparently the page that said that __android_log_text was a thing lied) 20:57 hmmmm even if that were mergable, it'd break everybody elses' pull requests 20:57 paramat i think a separate node will be faster to process during mapgen, due to having a different content id 20:58 hmmmm shadowninja, maybe it would be a smarter idea to keep these __FUNCTION_NAME and infostreams as aliases and make gradual changes 20:58 ShadowNinja hmmmm: It doesn't break much, just debug.*, log.* and parts of main.cpp mostly. 20:59 hmmmm but you've got to ask; why change infostream to warningstream to begin with? it doesn't seem like it's really helping minetest that much 20:59 ShadowNinja hmmmm: infostream and friends are still around. I don't think I've seen __FUNCTION_NAME used in any PRs, and it's a trivial fix if it is. 21:00 hmmmm yeah but when PRs go to merge they're going to have a merge conflict 21:00 hmmmm because it's going to expect infostream 21:00 est31 my PR has 21:00 hmmmm and maybe not used directly 21:00 ShadowNinja hmmmm: I just *added* warning stream. It's used instred of *stream<<"WARNING: ... 21:00 hmmmm and totally fine 21:00 ShadowNinja infostream is still around. 21:00 est31 yes 21:00 hmmmm changes need to be gradual though 21:01 hmmmm this big change-everything strategy simply does not work 21:01 hmmmm it worked when you had a small project 21:01 ShadowNinja You can't really fix the worst parts without breaking other things. 21:02 hmmmm i'm concerned about breaking PRs 21:02 ShadowNinja My logging PR is a minimal-conflict PR though. 21:02 hmmmm how about we clear out the PR backlog and then we'll see what we can do with large, sweeping changes 21:03 hmmmm man, 64 changed files and you say it's minimal conflict 21:03 hmmmm but how can you really be sure about that 21:03 hmmmm 64 changed files! 21:03 hmmmm 64! 21:03 hmmmm my largest commits never touched more than 16 files 21:03 ShadowNinja Mostly just __FUNCTION_NAME and *stream<<"WARNING: ->warningstream<<" changes. 21:04 hmmmm so let's say we did merge this right away 21:04 hmmmm what do we gain by having it all at once 21:04 hmmmm and what happens when people start complaining about conflicts 21:05 hmmmm and how about for src/socket.cpp, you changed the dstream to a warningstream 21:05 hmmmm that's really not a warning at all 21:06 hmmmm I'm worrying this might make things too verbose in general 21:06 ShadowNinja hmmmm: Well, the __FUNCTION_NAME change isn't essential, and i could leave the warning thing. socket.cpp states it's a warning, if it isn't it shouldn't have said that. 21:06 sfan5 what's with that face_position_cache.cpp? 21:06 sfan5 how does it relate to logging? 21:07 kahrl_ I was about to ask that, same for the util/numeric.h changes? 21:07 hmmmm you removed CONTAINS()? 21:07 hmmmm :( 21:07 hmmmm that could be useful to other source files 21:07 ShadowNinja sfan5: I moved it out of numeric.h because it was pulling in some more headers, it's only used in two places, and it's rather Minetest-specific. 21:08 sfan5 you should name your PRs better 21:08 sfan5 what you've done is clean up 2 or 3 unrelated things 21:08 hmmmm but I mean other than those things the Pr is fine 21:08 sfan5 but your PR is called "Clean up logging" 21:08 ShadowNinja hmmmm: It pulled in in every file that used numeric and it's only used in two files. 21:08 hmmmm it shouldn't need included unless the file uses it 21:08 ShadowNinja sfan5: I sometimes get a bit carried away, yes. 21:09 hmmmm so keep the macro in the file and move to the files which do use it 21:09 hmmmm that was my bad 21:09 ShadowNinja hmmmm: Seems fair enough. 21:09 sfan5 maybe if they were smaller easily reviewable chunks 21:09 est31 cleanups are good, but commits should focus on separate things. 21:09 sfan5 try not to put too much into a PR 21:09 hmmmm will changing the meaning of debug_log_level values mess up peoples' config files? 21:11 ShadowNinja hmmmm: For anyone that uses that setting, yes. I think that it should be changed to a string setting so that levels can be added without breaking everything. 21:11 ShadowNinja I didn't get to that yet though. 21:12 * ShadowNinja will do that now. 21:12 sfan5 ShadowNinja: why s/ARRLEN/ARRAY_SIZE/? 21:12 ShadowNinja sfan5: Readability. 21:13 sfan5 really? 21:13 sfan5 IMO both are equally readable. 21:13 ShadowNinja *shrug* 21:15 sfan5 ShadowNinja: why remove the log-level examples (log.h)? 21:16 ShadowNinja sfan5: Most of them seemed obvious. I added more concise comments for the others. 21:17 sfan5 ShadowNinja: the only additionall thing is "// Special level that is always printed" 21:18 hmmmm yeah 21:18 hmmmm ARRLEN is just as readable 21:18 ShadowNinja sfan5: And "// In-game actions" 21:18 kahrl_ oh btw, "grep -R 'sizeof.*sizeof' src" reveals a bunch of places that could benefit from using ARRLEN/ARRAY_SIZE 21:18 hmmmm and i need to point out it's not always a global string replace. changing identifier names with longer ones might push some pieces of code onto new lines 21:18 sfan5 ShadowNinja: that ones was already there before 21:19 sfan5 ShadowNinja: "" /* In-game actions ("celeron55 placed block at (12,4,-5)") */ "" 21:19 hmmmm i vote for changing back to ARRLEN. 21:19 paramat yeah i'm sure river water has to be a separate node, mapgen will be slower and more complex having to set or read a special parameter, the separate content id helps a lot. please can i push? =) 21:19 hmmmm paramat: sure.. 21:19 sfan5 i vote for changing back to ARRLEN. 21:19 * sfan5 too 21:19 est31 *too 21:20 sfan5 est31: /me 21:20 sfan5 (if your irc client does not have that you are probably using netcat ;) ) 21:20 est31 lol 21:20 sfan5 https://github.com/minetest/minetest/pull/2628/files#diff-7ec3c68a81efff79b6ca22ac1f1eabbaR193 21:20 sfan5 i think this is less readable 21:20 est31 yes I know that just didnt use it that time 21:20 sfan5 having an #ifdef in the middle of an expression 21:21 sfan5 just to save some bytes or something 21:23 ShadowNinja O.K. 21:24 hmmmm agreed I hate that 21:24 hmmmm i saw a rather extreme example in porting.h and i want to change it there 21:29 est31 man this is stupid 21:29 est31 I have srp login set up and everythin works then it sais: supplied wrong (SRP) password from address 127.0.0.1 21:30 est31 it means I have to find a way to debug srp itself 21:31 est31 I'll let both hash the verifier first to make sure 21:31 est31 then print that to stdout 22:04 hmmmm wow I look at all this crap in porting.cpp and I wonder how on earth it actually works 22:04 hmmmm need to resist the urge to make radical changes 22:48 est31 hmmmm, you dislike passing arguments as references, don't you? 22:48 est31 now I have following code: https://github.com/minetest/minetest/pull/2620/files#diff-2d67c2347848dbd1d1d74e4b8d608694R112 22:48 est31 Its shit 22:48 est31 obviously 22:49 est31 I'm passing pointers to a stack string's c string representation 22:49 est31 now I want to "return" both salt_str and bytes_v_str 22:50 est31 If you know a way thats nicer than references please tell 22:50 est31 (in order to fix) 22:53 est31 oh, having strings makes things more complicated 22:53 hmmmm est31, references are okay 22:54 * est31 sighs and does malloc and free 22:54 hmmmm the rule is to not pass references as arguments that are non-const 22:54 hmmmm const std::string & is fine 22:54 est31 yes 22:54 hmmmm std::string &foobar is not 22:54 est31 my question was about the latter one 22:55 hmmmm you want to make it clear that if a variable could be modified, it's going to be a pointer 22:56 est31 either way I'm coping 22:56 est31 either with the = operator 22:57 est31 or ... with the = operator 22:57 est31 :) 23:08 ShadowNinja I've changed ARRAY_SIZE to ARRLEN, changed debug_log_level to a string setting (with a compatability wrapper for the old format), and changed the game_params.is_dedicated_server thing. 23:09 hmmmm well 23:09 ShadowNinja And changed the socket.cpp windows warning ignoring thing to infostream. 23:09 hmmmm I don't know if the second item there is worth it. debug_log_level being consistent for people is sort of irrelevant since the majority of the stream levels have been modified 23:10 hmmmm and the number format is good because it's simpler to implement and has a well-defined order to it 23:10 hmmmm my previous statements about reverse compatibility, now that i think about it, are wrong 23:10 ShadowNinja hmmmm: Well, I like it better this way, and at this point it's more work to change it back. 23:10 hmmmm okay then. 23:11 ShadowNinja Should I undo the __FUNCTION_NAME thing? 23:12 ShadowNinja I don't think it has any conflicts, but if it'll get this merged faster... 23:12 hmmmm no that's definitely a good change 23:12 ShadowNinja Alright, good. 23:13 ShadowNinja I think I'll add a string_to_level helper or similar, since minetest.log uses pretty much the same code as init_log_streams now. 23:47 ShadowNinja Should the main thread's logging thread name be changed to "Main" or "MainThread" to be consistent with the casing of the other thread names?