Time Nick Message 00:15 ShadowNinja VanessaE: PM me, maybe I can fix it. 00:17 VanessaE ShadowNinja: already did, see inchra. 00:35 Taoki RealBadAngel: Since we spoke about adding a dynamic lighting system via shaders, I looked up something which could be very useful. Modern hardware lights are done using "deferred shading". This is the renderer taking multiple passes (geometry with textures + geometry with shading + etc) and combining the images together... obviously all of it each frame 00:35 Taoki http://en.wikipedia.org/wiki/Deferred_lighting 00:36 Taoki This might be the best way to go for doing it in Minetest too. Multiple passes might be slower, but generating the unlit geometry + lighting map separately could be the key 00:38 Taoki RealBadAngel: It would also fix the issue of sunlight shining in caves. How would be simple: We would render 3 passes per frame. First is the textured and unlit geometry, second is the untextured geometry with param2 (current lighting system), and third is the untextured geometry with dynamic lighting. subtract the param2 map from the lighting map, and add that over the textured map. 00:39 RealBadAngel sounds pretty easy 00:40 RealBadAngel and of course multiple passes will be slower 00:40 RealBadAngel i think we shall take a closer look on how SEUS shaders does that 00:42 Taoki Yeah 00:42 Taoki Actually, 2 passes could work too. We could render the textured scene + dynamic light, and darken that with the untextured scene using black & white areas generated by param2 00:43 Taoki I'm not sure how it works exactly, but thought to let you know about it if it helps :) 00:49 RealBadAngel i will read those papers and think about it 00:50 RealBadAngel please read "disadvantages" section, there are problems with transparency there 00:51 Taoki RealBadAngel: Yeah. It discusses pros and cons of two methods: Deferred lighting, and deferred shading (apparently its opposite) 00:51 Taoki Apparently the deferred SHADING approach is much better 01:17 Sokomine oh. many people present. fine! 01:20 Sokomine i wonder how difficult it would be to integrate the mapp mod into the client? to let the client draw a simple 2d map of the sourroundings of the player? doing that server-side is crazy 01:21 Sokomine i do not have the knowledge of the code to do it. a lot has been achieved in the past, and the game has developed greatly (of course there are still issues...and there'll probably always remain some. but it's a great game!) 02:13 RealBadAngel Sokomine, having such minimap would be great indeed 02:14 Sokomine i've just forked 4aimans mapp mod. that's server-side and works with formspecs. which is...a bit...inefficient...one could say :-) but what else can a poor mod do? 02:16 OWNSyouAll Whats the reason for not allowing custom types for crafting recipes? 02:18 Sokomine if you know where everything is (=where to find the data structures for the map chunks received and how to interpret them correctly) and how to get irrlicht to draw something, it certainly ought to be doable 02:19 RealBadAngel OWNSyouAll, theres no reason, one should code that 05:57 RealBadAngel if somebody wanna test and review: https://github.com/minetest/minetest/pull/1112 05:57 RealBadAngel new HUD element 06:04 xyz any news on water shader you were making? 06:07 RealBadAngel i want to push the latest changes i made to shaders first, the normal map generation etc 06:07 RealBadAngel then i will continue with other things 06:08 RealBadAngel i have one week off, so plenty time for coding 06:16 xyz alright 06:17 xyz ~tell BlockMen m_camera_direction *= (-1,1,-1); 06:17 ShadowBot xyz: O.K. 06:20 us_0gb RealBadAngel: That's awesome! 06:26 hmmmm i'm not really sure 3d world-oriented visuals should be classified as part of the HUD 06:26 hmmmm when people think of a HUD they think of a set of 2d interface elements statically positioned 06:27 hmmmm but in this case it just happens to work out cleanly because it requires much of the same functionality as the hud elements do 06:27 hmmmm i feel like waypoints should be classified as the same kind of thing that the pointedthing box is 06:28 hmmmm which I don't think it is classified as anything in particular, just some 'stuff' that gets drawn in the big main loop 06:32 xyz are waypoints always displayed? wouldn't that be kinda annoying? how about additional param, distance? 06:32 xyz "number: An integer containing the RGB value of the color used to draw the text" this is quite strange naming 06:32 hmmmm that's because number is a generic integer value that happens to take on that role for that sort of HUD element 06:33 hmmmm the hud could've been designed a lot better but I was merely enhancing what some other guy came up with already 06:47 xyz ah, then it's okay 06:48 xyz somewhat 06:49 xyz by the way 06:49 xyz "what's so hard with having a single packet in the beginning of the connection to negotiate key positions within messages" 06:50 xyz ah, nevermind 06:51 xyz I wanted to give some argument but forgot it 08:47 xyz wat 08:47 xyz https://github.com/minetest/minetest/blob/master/src/CMakeLists.txt#L590 08:47 xyz why's curl there? 08:47 xyz sfan5: 12:31 sfan5 xyz: probably happend while copy pasting 12:31 sfan5 fix incoming in 10 minutes 13:01 RealBadAngel xyz, waypoints are displayed when defined, a mod shall manage definition of waypoints, editing them etc 13:01 RealBadAngel i made waypoints in Lua before, but since its animation it sucked 13:02 RealBadAngel hmmm, and yes, waypoints are generic HUD elemets, look at any flight simulator 13:06 xyz okay 13:10 CiaranG Say I wanted to use keys (e.g. arrow keys) instead of the mouse - is that something that a) has already been done/discussed, b) can be done in a mod in lua, or c) needs core code changes to support it? 13:10 RealBadAngel c i think 13:11 BlockMen xyz, ? 13:11 xyz what? 13:11 RealBadAngel wait a sec 13:11 xyz you mean what's wrong with your code? 13:11 RealBadAngel just redefine your keys lol 13:11 xyz * (-1, 1, -1) doesn't do what you want it to (what do you want?) 13:12 RealBadAngel ah, that would be for movement just 13:12 BlockMen xyz, yes it does. it inverts the camera direction in front view mode 13:12 BlockMen *the given direction 13:12 xyz it's the same as * -1 13:12 xyz why did you write it like this? 13:12 BlockMen no, because of y value 13:12 xyz eeh 13:12 xyz alright 13:12 xyz do you know what operator , does? 13:13 CiaranG RealBadAngel: Yeah, no ability to redefine mouse movement or left/right click currently, that I could find 13:13 xyz if you want to do what I think you want to you need to use v3f(-1, 1, -1) 13:13 RealBadAngel CiaranG, so that would be c) then 13:13 CiaranG Ok, I'll look into implementing it then, thanks 13:14 RealBadAngel maybe pressing ALT + arrows to simulate mouse? just a random idea 13:14 BlockMen alright, forgot the vf3, but worked for me anyway:P 13:14 * BlockMen will add vf3 then 13:14 xyz after fixing it won't 13:14 xyz be aware 13:14 RealBadAngel xyz, have you tested how waypoints are working? 13:16 xyz no, but I find the idea nice 13:19 BlockMen just as general question, is there a specific reason that there is that much commented out/old code in source? i thought we have github for looking up old code if necessary 13:20 xyz dunno, I too think we have git for old code 13:21 xyz you see, there's even the "old" directory 13:21 RealBadAngel that works pretty well as a reminder for the author on the other hand 13:22 RealBadAngel i left there parallax code and implemented better version of it 13:22 xyz reminder? 13:23 RealBadAngel kinda TODO 13:24 xyz well in that way it's okay 13:24 xyz but I find old unused code way too often 13:25 xyz https://github.com/minetest/minetest/blob/master/src/content_sao.cpp#L160 13:25 xyz "DEPRECATED" 13:25 xyz still left in source for whatever reason 13:28 xyz aha, it 13:28 proller but bad idea to move it to lua.. 13:28 xyz it's probably left for deserialization? 13:29 RealBadAngel no idea 13:29 xyz well who knows 13:30 BlockMen i was talking about something like this https://github.com/minetest/minetest/blob/master/src/hud.cpp#L188,L209 13:31 RealBadAngel since HUD can add selected slot image its really deprecated and obsolete code 14:04 * VanessaE grumbles at yet another random segfault 14:18 VanessaE ok, I know how to reliably segfault a server. 14:18 VanessaE this is a security hole. 14:18 VanessaE or DoS anyway 14:19 VanessaE Where do I post this? 14:19 VanessaE I've got a gdb full backtrace available of the segfault, and a very simple command to cause it. 14:20 hmmmm ...minetest has had segfaults before. 14:20 VanessaE this is a remote exploit. 14:20 hmmmm while i'm not at work do you want to tell me 14:20 hmmmm because i'm not going to be around for a good 9 or so hours 14:21 VanessaE msg --> 14:21 VanessaE did it twice in a row, caught the backtrace on the second try 14:23 xyz msg me too 14:26 hmmmm message the russian hacker about an exploit :D 14:28 VanessaE heh 14:28 RealBadAngel hmmmm, so whats your vote on waypoints commit? 14:28 hmmmm i like it 14:29 RealBadAngel any comments on the code itselft? 14:29 hmmmm haven't looked at that yet 14:30 RealBadAngel its quite simple code anyway 14:31 xyz haha 14:31 xyz well sapier broke it in one of his commits 14:32 RealBadAngel broke what? 14:34 hmmmm the connection thing 14:34 hmmmm it's hilarious 14:34 hmmmm when you encounter a malformed packet that you can't handle, what do you do... 14:35 hmmmm log an error? 14:35 hmmmm stop processing? 14:35 hmmmm both? 14:35 hmmmm sapier thinks it's #1 14:35 ShadowBot https://github.com/minetest/minetest/issues/1 -- GlowStone code by anonymousAwesome 14:35 xyz it's not hilarious 14:35 hmmmm xyz: it's fixed 14:35 hmmmm it's trivial. 14:35 xyz i figured out as much 14:36 hmmmm well 14:36 xyz good thing we didn't merge it 14:36 hmmmm merge what 14:36 hmmmm oh your thing freeminer 14:37 xyz yeah on that ripoff thing 14:37 hmmmm fucking a 14:37 hmmmm anyway it's really easy to DoS the server by keeping conlock always active 14:37 hmmmm err rather logging lock 14:37 hmmmm and continuously spamming the console with error messages 14:38 hmmmm somebody should #ifndef DEBUG #undef LOG #define LOG(x) (); #endif 14:38 hmmmm or at least figure out some sane way to tell the server admin about shenanigans 14:38 hmmmm but that's not really as critical as what was just fixed. 14:38 hmmmm i've gotta go now, laters 14:39 xyz ah, logging log is another reason for it 14:39 xyz s/log /lock / 14:39 hmmmm we should do it like OpenSSH does it 14:40 hmmmm if there's a flood of attempts then don't bother logging and after it's done just write "last message repeated X amount of times" 14:40 hmmmm but again, that's for later 14:42 VanessaE ok, fix confirmed. thanks hmmmm 15:05 proller somebody must just revert 9edb91da5754cf194637d1d7faa513719b61f9b4 16:03 sfan5 any more comments on #1110, what subsystem does that even belong into? Network? 16:03 ShadowBot https://github.com/minetest/minetest/issues/1110 -- Include system info in the HTTP user agent on Windows by sfan5 16:04 sfan5 s/,/?/ 16:15 BlockMen sfan5, network would fit i guess 16:15 BlockMen and/or client 16:28 sfan5 ShadowNinja: the code in #ifdef _WIN32 obviously works on mac 16:51 xyz sfan5: I don't understand #ifdef _WIN64 - #else - #endif part, can you explain? 16:51 sfan5 if minetest if compiled for win64 it is out of question that we have a 64bit os 16:51 sfan5 if not it checks whether the 32bit app runs on a 64bit os 16:52 sfan5 if minetest is compiled* 16:57 xyz well this part was easy 16:57 xyz what if IsWow64Process is not defined? 16:57 xyz like on some 32-bit winxp 16:57 sfan5 it is defined on 32-bit xp 16:58 sfan5 otherwise that function would be pointless because it is for checking whether you have a 64-bit os (on an os that is possibly 32-bit) 17:01 xyz some sources say otherwise 17:01 xyz well on win 2k it's not defined for sure although minetest probably won't run on it anyway 17:02 sfan5 winXP support ends in april anyway 17:02 xyz and some sources say that on win xp pre-sp2 it's not defined either 17:02 xyz and? 17:03 sfan5 fine, I'll use the complicated way with LoadLibrary and GetProcAddress 17:03 xyz wait wait wait, isn't this channel ready to kill for compatibility? 17:03 xyz I'm not saying you should 17:03 xyz I mean, that feature is so useless.. 17:03 xyz just trolling around 17:04 sfan5 shall I use the safe way or not? 17:05 xyz dunno 17:05 xyz ask others 17:08 BlockMen i dont think it is necessary to use the safe way 17:23 ShadowNinja I don't think we should support XP SP2 and previous. 17:24 ShadowNinja And we should drop XP support sometime soon too. That would let us use UTF-8 properly and give us combined IPv4-v6 sockets. 17:25 sfan5 http://dev.minetest.net/Organisation says sapier is for low-level networking, useragents aren't low-level, are they? 17:25 sfan5 we should drop support for XP after M$ does IMO 17:28 ShadowNinja Is there anyone assigned to high-level networking? 17:28 sfan5 no 17:29 ShadowNinja Then that should be either saier's or kahrl's domain. (As kahrl wrote HTTPFetch) 17:29 ShadowNinja +p 17:29 sfan5 since it is a rather trivial change, would agreement of 2 or more core devs suffice? 17:29 ShadowNinja Yes. I'll agree if it works on mac. 17:30 sfan5 please show me the line in question 17:30 sfan5 every code I added is windows-specific 17:30 ShadowNinja The linux code should work, but mac doesn't have the include. 17:30 sfan5 is mac a support build configuration? 17:30 sfan5 supported* 17:31 ShadowNinja No, but it's better not to make it harder to support it in the future. 17:31 xyz how are you going to use utf-8 properly? 17:32 ShadowNinja Does anyone know of someone that might be able to work on a Mac build? 17:32 * sfan5 has a mac virtual machine with xcode 17:32 ShadowNinja xyz: Ask sapier. I based ^ off a coment he made on a issue regarding UTF-8 support. 17:33 sfan5 just compiling the function in question would be enough 17:33 celeron55 to the previous discussion: the oldest windows minetest supports is XP 17:33 ShadowNinja Yes. See if you can compile it. And later you should try to get Minetest to run, and get a package made. 17:34 ShadowNinja (If possible) 17:34 xyz haha 17:34 sfan5 celeron55: we support XP w/o Service Pack? 17:34 xyz from stats I have 17:35 xyz Linux / Windows XP = 1.25 17:35 celeron55 sfan5: no 17:35 xyz that's from June though 17:36 sfan5 if we don't support service pack 1 either we won't run into any problems with using IsWow64Process directly 17:36 xyz I really don't understand why do you want to drop support for no reason 17:37 celeron55 is there any issue in wine with either of them? 17:37 sfan5 I don't want to drop support 17:37 celeron55 if there is, that makes the choice 17:38 sfan5 it works fine for me in wine 17:38 xyz I mean, about UTF-8 17:39 ShadowNinja SP2 has been available for a LONG time. xyz: Can you see how many recent SP0/SP1 visitors you have? 17:39 xyz no, I can't 17:40 ShadowNinja Alright. It should be almost nil though. 17:41 xyz indeed 17:41 xyz I'm talking more about that UTF-8 issue 17:43 ShadowNinja It seems that Mac OSX hasn't messed with uname. So just moving the #include to a #ifndef _WIN32 block should fix it. And it should also make it work on BSD, which is supported(or at least few core devs use it). 17:44 xyz why do you care about os x? 17:44 xyz nobody provides builds 17:44 xyz people have to use wine in order to play 17:44 sfan5 ShadowNinja: I can confirm it works on mac (when adding it to the includes) 17:45 ShadowNinja sfan5: Well, yes. I meant that the include should be moved to #ifndef _WIN32. 17:45 sfan5 s/moving/adding/ you get what I mean 17:49 RealBadAngel celeron55, can you take a look on https://github.com/minetest/minetest/pull/1112 ? 17:52 VanessaE ShadowNinja: please check your messages on inchra. we have...a problem. 17:52 ShadowNinja sfan5: Since algorithm is only used on windows it should be moved to a windows-specific section. 17:54 sfan5 ShadowNinja: done 17:54 proller RealBadAngel, you use branches!!11111 17:54 RealBadAngel damn me, rly? ;) 17:55 RealBadAngel u must be mistaken or somethin ;) 17:55 ShadowNinja sfan5: Isn't there an existing ifdef _WIN32 block for windows.h? 17:56 RealBadAngel proller, i have to, i have several pulls incoming 17:56 ShadowNinja sfan5: And you can move the unistd.h includes to the ifndef _WIN32 too. 17:57 rubenwardy For some reason, my computer thinks my 32gb memory stick is a hard drive 17:57 ShadowNinja Seems you'll have to add a windows.h include. 17:57 rubenwardy oops 17:59 proller RealBadAngel, v3f world_pos = readV3F1000(is); - adding reads only via try, for old servers 18:01 RealBadAngel ok, any other suggestions? 18:02 RealBadAngel hi PilzAdam, https://github.com/minetest/minetest/pull/1112 if you can review 18:07 PilzAdam RealBadAngel, it looks ugly 18:09 xyz that's only because he doesn't use truetype fonts 18:10 xyz btw 18:10 PilzAdam only text will always look not very good 18:11 ShadowNinja RealBadAngel: Indentation change: https://github.com/minetest/minetest/pull/1112/files#diff-18513665750ef5adf42b5ec29e14162eR2368 18:11 xyz why does the code there uses pointers? 18:11 xyz in event struct 18:12 PilzAdam also why does it add "m" to the distance? one could imagine a game where one node represents 1 cm and the player is very small too 18:13 RealBadAngel i thought 1m is 1BS 18:14 ShadowNinja You could change it to " nodes"... 18:15 RealBadAngel so player eyes are on 1.5 nodes high? kinda weird 18:15 proller node - bad name for block 18:15 proller and block - bad name for 16^3 blocks 18:16 PilzAdam minetest - bad name for game 18:16 RealBadAngel xyz, which part with pointers you have in mind? 18:17 RealBadAngel ShadowNinja, will fix it 18:18 PilzAdam ShadowNinja, or no unit at all 18:18 RealBadAngel xyz, ah that. i followed general HUD code style 18:19 xyz yea, I'm not saying you did it wrong 18:20 RealBadAngel if i were starting from scratch i propably will code it another way 18:20 ShadowNinja BlockMen: FIRST, THIRD, and THIRD_FRONT are bad names for enum elements. Prefix them with CAMERA_MODE_. And CAMERA_MODES shouldn't be all-caps(CameraModes). 18:20 ShadowNinja (And -s) 18:20 RealBadAngel but when im adding something i try to follow the style 18:21 RealBadAngel at least all the bells are ringin in the same church then 18:25 BlockMen ShadowNinja, you are right, will change this. And i just noticed that i typed 'TOCLIENT_AMINATIONS' instead of 'TOCLIENT_ANIMATIONS', lol 18:32 RealBadAngel rotfl 18:54 Calinou BlockMen, in third person implementation, if you sneak-walk then stop sneaking without stopping walking, sneak-walk animation still shows 18:54 Calinou (and inversely) 19:02 BlockMen Calinou, thx for reporting ;) 19:02 Calinou also, going on stairs doesn't look smooth from third person 19:02 Calinou and moving upwards while flying looks weird 19:03 Calinou (stair-smoothing applies even when flying and in air, this should not be the case) 19:05 sfan5 ShadowNinja: did that, ok now? 19:06 celeron55 xyz: it's an union so you can only put POD in there 19:07 xyz ah 19:08 xyz I see, thanks 19:11 celeron55 RealBadAngel: what's this waypoint for? 19:11 celeron55 i suspect there is some explicit usecase because otherwise nobody would have done it 19:17 ShadowNinja sfan5: Merge the ifdef _WIN32 block into the end of the __APPLE__/__FreeBSD__ block. And you should chose one style for it, either ifdef, or if defined(). Then it seems good. 19:18 ShadowNinja celeron55: It's so that you can mark things like your home so that you can find it later. 19:19 celeron55 i agree to the problems with the "m" as the unit 19:20 celeron55 it's also problematic for people who are used to nonstandard units like feet or something 19:20 sfan5 "nodes" would be the correnct unit, wouldn't it? 19:20 sfan5 ShadowNinja: done that 19:20 celeron55 what is our official real world and game agnostic unit of measurement for distances to be shown to players? 19:21 celeron55 people have been talking about not using nodes for that, i guess "cube" has been suggested 19:21 rubenwardy Nodes are defined as 1x1x1 metre blocks (aparently) 19:21 sfan5 cube may confuse people because it is not used anywhere else 19:22 celeron55 i don't have anything against just calling it nodes; there's no chance of misunderstanding in it 19:22 celeron55 but it may sound odd to new people 19:23 rubenwardy I vote metres. You could add a setting to the configuation with a conversion ratio (so it can automatically be converted from metres to another unit). 19:24 rubenwardy or meters, if you are American. 19:24 rubenwardy Not that I have any real right to vote. 19:24 BlockMen i think meters would be fine 19:24 xyz let's just leave it empty 19:25 xyz nodes will be confusing to players 19:25 ShadowNinja sfan5: BOOL is64 = FALSE; -- Why the caps? 19:25 sfan5 ShadowNinja: because it's a Windows BOOL and not a C++ bool 19:25 xyz proprietary bool D: 19:25 sfan5 indeed D: 19:26 ShadowNinja M$ needed to define their own bool? ... 19:27 sfan5 yes 19:27 Kray they defined it for C 19:27 Kray not C++ 19:27 xyz all those people calling microsoft M$, this makes me facepalm sometimes /blog 19:27 Kray also glib defines gbool 19:27 Kray is that proprietary bool too 19:27 rubenwardy Appl£ 19:27 Kray opengl has its bool too 19:27 sfan5 Kray: glib is open-source 19:27 sfan5 (IIRC) 19:28 Kray the header defining the microsoft's BOOL is also open source 19:28 ShadowNinja Well, gbool is a better name than BOOL, but whatever. I guess you can merge it now. 19:29 BlockMen rubenwardy, Appl€ 19:29 Kray FreeImage also uses BOOL 19:29 rubenwardy Me 19:29 sfan5 well, who is high-level network maintainer anyway? 19:29 rubenwardy -h 19:31 xyz what's high level? 19:31 ShadowNinja sfan5: kahrl would be amanger for that, since he wrote HTTPFetch, and the puprose of the section system is so that the maintainer knows how the section works and can approve things. 19:32 ShadowNinja *maintainer 19:35 sfan5 xyz: I would consider a change with user agents high-level 19:42 xyz well yeah but this part of network is totally unrelated to, say, new packets 19:42 xyz this subsystems stuff only makes everything more confusing 20:31 celeron55 if it's more confusing, don't use it 20:31 celeron55 all the previous rules are in effect and the subsystems exist for making things easier that they make easier, not to make anything harder or more confusing than before 20:32 proller need more restrictions and division! 20:33 celeron55 our issue is that there are too many people working for too little time on a too large project; i guess there's no solution to it other than hoping that people are sensible 20:34 proller bad hope 20:34 celeron55 well do something to fix it then 20:34 celeron55 everyone is waiting 20:35 proller need more popularity -> more developers 20:35 celeron55 fix too many devs with even more devs? hmm 20:35 celeron55 sounds like a masterplan 20:35 ShadowNinja Too many devs? 20:36 proller now ~0 active devs 20:36 proller not too many 20:36 ShadowNinja proller: What do you consider active? Commited something in the fast hour? 20:36 ShadowNinja past* 20:36 proller past 10 min 20:38 kahrl while true; do echo >> README; git add README; git commit -m "I'm still active"; git push upstream master; sleep 600; done 20:43 sapier hmm I prefere to commit at least somehow finished stuff ... pull requests and private branches are enough for others to see whats going on 20:43 celeron55 22:40:10 also assigning sapier to important subsystems - bad idea. 20:43 celeron55 22:40:51 is halting development a better idea? 20:43 celeron55 22:41:10 should we just raise coding standards and hope someone who makes good stuff comes in? 20:43 celeron55 22:41:20 and who is going to judge it 20:43 celeron55 22:42:22 look at his commits 20:43 celeron55 22:42:37 and mobf 20:43 celeron55 22:43:15 i'm asking, what's the solution? if not sapier, then who does the work? 20:43 celeron55 22:43:36 better nobody than this 20:43 celeron55 22:43:53 i have no other idea than wait 20:43 celeron55 22:43:58 also i would want this discussion to be on #minetest-dev 20:43 celeron55 22:44:33 i don't like talking shit about people behind their backs 20:43 celeron55 i suppose sapier is against it and sapier won't change his way of coding, right? 20:44 celeron55 also does anyone else agree with this 20:45 sapier1 if someone tells me what's wrong with my coding I may change it if it's a real issue 20:45 celeron55 if you insists, you can tell me privately and i will keep you anonymous (i asked proller whether i can copy that here) 20:46 sapier1 constructive criticisim is always welcome 20:46 sapier1 but I can't improve anything on comments like "it's bad, I hate it, ... " 20:47 ShadowNinja Requested by qwrwed, comments? http://ix.io/a2v 20:48 ShadowNinja sapier: Can you look at #862? 20:48 ShadowBot https://github.com/minetest/minetest/issues/862 -- Add the option to bind to a specific address by ShadowNinja 20:48 sapier I'm positive 20:49 sapier 862 is in my list I hope to have time to merge it this weekend 20:49 celeron55 proller: it would probably be of much help in this discussion if you made a list of what is wrong (in some commit or commits) (no matter how annoying that might be to make and no matter how obvious the contents) 20:49 ShadowNinja Also #1113 and #1110 20:49 ShadowBot https://github.com/minetest/minetest/issues/1113 -- Minor pathfinder error message changes by CiaranG 20:49 ShadowBot https://github.com/minetest/minetest/issues/1110 -- Include system info in the HTTP user agent on Windows by sfan5 20:51 proller splitting connection to two threads and adding looot of locks everywhere - why? 20:51 proller remixing it to fix imagined problem - why? 20:51 proller loooot of wtf in formspec 20:53 sapier I already said if you can proof some lock isn't necessary I'll remove it immediatly 20:53 proller why you make two threads? 20:54 proller with one thread all locks isn't necessary 20:54 celeron55 i agree that all the crazy threading is nonsense 20:54 sapier you already found out about enet in your simple version consuming all cpu power 20:54 proller yes, but its okay 20:55 sapier ok celeron55 if you have a suggestion how to fix lag AND cpu power with a single thread you're welcome 20:55 proller cpu power - because 20+ megabytes per second transfer 20:55 proller and processing this data 20:56 sapier 20+ mbytes is nothing for a current cpu 20:56 proller apply 20 megabytes of media needs cpu 20:56 sapier the two thread version does use less then 20% in this situation 20:56 sapier and I've got a quite outdated phenom2 20:57 proller again: cpu - not a problem 20:57 sapier it's a quite simple thing, with one thread I can do either send OR receive 20:57 proller your current connection can only 200-400kbps, and it not eat cpu 20:57 sapier so if I'm busy with sending I can't receive and other way round 20:57 sapier vanessaE managed to get 9mbit for a single client 20:57 proller you can send-recieve 100+ mbps in one thread 20:58 sapier no I can't 20:58 proller in real word, not in your imagined 20:58 proller yes, you not. 20:58 sapier enet can't do that either because your os cache wont take that much data 20:58 proller do not touch networking if you cant 20:59 sapier proller I wont discuss this issue any longer the fixes are way better then before, we already decided to switch to a new version. It's up to you to provide a better version instead of complaining about non issues 21:01 sapier the reason why this was merged is because it fixes a lot of issues ... if you're annoyed this is incompatible to your own tons of changes in this area I'm sorry but I wont change it 21:02 sapier and proller I'd like to know your background about network programming. Maybe your accusations are right but I have quite some doubt 21:03 celeron55 (observation: nobody else has yet said to agree with that issue that proller raised; please do if you do agree) 21:04 sapier celeron55 could you please be more specific about "that issue"? 21:04 celeron55 the one i pasted 20 minutes ago 21:04 celeron55 which is the one you are talking about 21:05 sapier my coding style? 21:05 sapier multiple threads? 21:05 xyz yea, multiple threads 21:05 celeron55 your way of designing programs being bad, i think 21:06 celeron55 it's a bit hard to tell what exactly 21:06 celeron55 (if there's something else than the threads) 21:06 sapier because of separating sending from receiving? 21:07 sapier It's hard to improve something if you don't tell me what's wrong? 21:07 xyz haha, well, I'll leave it to proller to argue with you 21:07 celeron55 i'm sure nobody wants to be your teacher so that's a bad argument really 21:08 sapier and how am I supposed to change something if you don't tell me what you don't like? 21:08 celeron55 (i am intentionally not taking any side on this for now) 21:08 celeron55 (or, well, not anything new from me at least) 21:09 sapier My intention when coding is to break down a big task into small managable components each of them almost independent from others 21:10 sapier yes for some things this seems to be more complex then necessary ... but after some years of developing old code I realized this way it's way more easy to replace one of those parts with a better version without rewriting all of it 21:11 sapier but back to multiple threads 21:12 sapier the basic reason for this is to NOT have to care about how much data can I send prior I have to stop and do some receive 21:12 sapier or other way round because this decision is already made implicit by os scheduling, semaphore and select 21:13 sapier in best case (core beeing available) send and receive will run 100% in parallel without interfereing each other 21:14 sapier it's annoying everyone is great on accusing people doing work but once you ask what's wrong everyone ducks and hides 21:15 xyz well it's just in general 21:15 sapier celeron55 if you feel my way of coding is bad I can stop coding and stick to check and merge fixes by others. Hope they really will fix the issues 21:16 xyz main menu, multiple connection threads, locking on every log 21:16 sapier I hate the log lock but it's been a quick fix for this subsystem broken 21:17 sapier If you feel ok with broken logging I remove it at once 21:18 sapier main menu needs some cleanup which I haven't done because someone said he's already working on it ... as often those fixes never arrived 21:18 proller logging is 99% development feature 21:18 sapier so we're fine with crashes in producion every now and then? 21:19 sapier because of a production feature? 21:20 sapier make mientest show all connection debugging to error stream, it won't stand for 5 minutes prior crash due to inconsistent memory handling in logging 21:20 proller your log locking when logging disabled - full WTF 21:21 sapier wtf? a second opinion you want to remove this lock and it's gone 21:21 sapier I don't care about this lock 21:21 sapier if you want your crashes back fine 21:22 sapier xyz? do you want the lock removed? 21:22 xyz I've never said that 21:22 xyz uhm, what else 21:23 xyz btw, what's our official reason for keeping backwards compatibility? 21:23 xyz I mean, people can just update, the game is free after all.. 21:23 celeron55 xyz: was the problems in each of these expressed at the time they were going to be merged? 21:24 sapier stop guys the connection fixes have never been meant to be merged, celeron55 suggested to merge them, I only did this fixes to understand what's going on there 21:24 sapier they did work very well for vanessae because she wanted to try the compatible fixes 21:25 sapier and I have said more then once I do not see this as final solution but only a interim fix till decision about follow up protocol is done 21:26 celeron55 it seems to me that this is more of a bunch of individual issues than something that can be fixed by doing anything more extensive 21:26 xyz celeron55: yeah, I guess there was some sort of discussion back then, on connection stuff 21:26 sapier I still have enet as well as tcp branches open, both ready for evaluation 21:27 sapier with open result, but I have an issue with enet as it's statistic values are crap 21:27 xyz sapier: what's your experience with network programming btw? 21:27 sapier I don't believe enet to have absolutely no jitter 21:27 celeron55 xyz: it all ended up quite messy and the current one is supposed to be a temporary solution 21:27 sapier 5 years industrial grade network communication devices 21:28 celeron55 xyz: i assume you are still standing for enet 21:28 xyz sapier: where do you work? 21:29 sapier I don't wanna tell the name of my company 21:30 xyz why? 21:30 celeron55 has anyone else told here for whom they work? 21:30 celeron55 i suppose no 21:30 sapier because I don't mix up private things and business 21:30 xyz alright 21:31 xyz celeron55: I don't think anybody has ever asked for it; nor I do see any problems with telling 21:31 proller my ip show my work sometimes.. 21:32 sapier xyz I don't claim to know everything, in fact I learn every day, mobf is perfect example when I started it I didn't know anything about mobs and ai ... that's why it's rewritten multiple times by now 21:32 proller and why it still unusable and BLOAT? 21:33 sapier because you didn't read the code, if you did you would've seen that entity code is built on initalization so low featured mobs don't have overhead of high featured ones 21:33 PilzAdam is it some kind of tradition to always pick on the most active dev in Minetest? 21:34 sapier seems to be pa 21:34 celeron55 so is it okay to xyz and proller that each of these things is intended to be a temporary solution and as such they will be replaced or fixed in the future 21:35 sapier xyz could you help with finding out what's wrong about enet statistic data? 21:35 celeron55 because that seems to be a fact 21:35 xyz sapier: what statistic? 21:35 sapier rtt and jitter 21:35 sapier those values I read can't be true 21:35 xyz sapier: not interested atm 21:36 sapier ok but don't blame me for not beeing able to decide about a final solution if I can't find a reliable way to judge the options 21:37 sapier does anyone have a wireshark dissector for enet? 21:37 kahrl is the log lock only for getting the thread name or for synchronizing output as well? 21:37 sapier I abused the thread name lock for output 21:38 kahrl okay, if it was only the thread name I'd have suggested TLS 21:38 xyz sapier: sure 21:38 sapier I actually intended to remove it prior pushing but as it fixed the crashes on error output I haven't removed it 21:38 celeron55 there's no need for output synchronization if it degrades speed 21:38 celeron55 so kahrl's suggestion is very valid 21:39 sapier wasn't thread name lock added because of some crash at prollers bsd? 21:39 celeron55 (assuming all crashes get fixed nevertheless) 21:40 sapier and what speed benefit do we get if we remove a lock done once on startup and once on shutdown? 21:40 sapier the lock around output is NOT related to threadnames at all it's just the same lock 21:41 sapier I should've added a separate lock for this 21:42 celeron55 well that sounds like something xyz and proller will absolutely love 21:43 proller mooooore locks!! 21:43 sapier or even better someone investigates why this output needs to be locked I wasn't interested in the exact reason I just wanted to have a quick solution to continue the network fixes 21:44 sapier celeron55 yes ... but we already see that using the thread name lock to make output exclusive results in confusion about threadname beeing involved 21:45 sapier but thread name has nothing to do with those crashes (as far as I know) 21:47 sapier something different on x86 32bit assignements are atomic, I used some locks around those because of this may not be true on arm. What do you think about arch specific lock defines? 21:49 sapier everyone shout's "here I am" on flame wars but on a real technical question all is quiet 21:53 kahrl they may be atomic on x86 but with the compiler optimizing writes you might not see those writes on a different thread 21:54 sapier any suggestions how to remove those locks? 21:54 kahrl you need something like volatile which might work, but volatile isn't meant for that kind of thing and its semantics aren't properly defined in a multithreaded scenario 21:54 kahrl better would be std::atomic but that's C++11 21:55 sapier hmm so I guess those locks are the less risky option right now 22:32 sapier https://github.com/sapier/minetest/tree/conlock_split this branch is supposed to fix the client initialization issues. It's splitting the "conlock" too wich actually isn't related to connection but is used for client list only. It's wip but as people seem to need a lot of time to read code you can have a look at it in unfinished state. I intend to move back the block sending functions to server. PLEASE COMMENT PRIOR MERGE this time. 22:33 sapier and maybe move the clientinterface to a separate file 23:32 VanessaE Can someone please check into the /auth_reload command and make it not crash the damn server? :)