Time Nick Message 00:01 JohnnyComeL8ly est31: How do you use this terminal feature? 00:06 JohnnyComeL8ly kahrl: Do you know how to use it? 00:10 kahrl JohnnyComeL8ly: minetestserver --worldname a --terminal 00:10 JohnnyComeL8ly kahrl, I did... (thanks), but I need to know how to utilize it. 00:11 kahrl ah 00:11 kahrl well you can simply type stuff, and when you press enter it will be sent to chat 00:11 JohnnyComeL8ly luizrpgluiz would be happy to know I got it working.... :-P 00:11 JohnnyComeL8ly Oh, ok. 00:12 kahrl it supports the usual commands, of course 00:12 JohnnyComeL8ly So, cat ~/someTXTdoc.txt will make it appear in the chat? 00:12 kahrl er, no 00:12 kahrl minetest chat commands 00:12 kahrl like /status, /teleport 00:13 JohnnyComeL8ly So, what does --terminal or ncurses do here? 00:13 kahrl ncurses is needed to manage the terminal 00:14 kahrl so you can type a command while other people's chat is updated at the same time 00:14 JohnnyComeL8ly So, I could grant fly to a player from terminal? 00:14 kahrl sure 00:15 JohnnyComeL8ly Oh, that explains the ] that was at the end of the log in the terminal.... You've been most helpful, kahrl. 00:15 kahrl you're welcome :) 00:16 kahrl also if you press esc you'll get to a small menu 00:16 kahrl with a typo in it :P 00:18 JohnnyComeL8ly That is awesome! 00:19 JohnnyComeL8ly Bye. 01:37 est31 kahrl, note that currently I do process input in utf-8 format 01:38 kahrl yeah, I saw that after I said it 01:38 est31 I dont really remember why I've used ncursesw instead of ncurses 01:38 kahrl apparently ncurses without the w doesn't really support locales well 01:38 kahrl for compatibility with old unixes, I guess 01:39 est31 that can be it 01:39 est31 I've heard that ncurses 6 or so will fix it 01:39 gregorycu 17% of the client time is spent drawing clouds lol 01:40 est31 gregorycu, thats why there is simple clouds 01:40 gregorycu Still... 01:41 est31 and thats why at joining a game clouds arent drawn for the time in which the nodes are initialized 01:41 est31 bc there the bottleneck is gfx 01:41 est31 and clouds would waste time 01:58 gregorycu I can make collecting profiling date take 3% of the time it used to. However, it means drawing the profiling data is 42% slower 01:59 gregorycu Collecting profiling data happens whether you have the graphs turned on or off though. 02:00 gregorycu I'll make a PR and people can decide 02:01 est31 will it require c++11? 02:01 gregorycu No 02:02 gregorycu Replacing a vector with a deque 02:02 gregorycu (Using a vector as a queue is very slow) 02:02 est31 I'm very sure nrz will +1 it 02:03 est31 and I'm very sure nrz has already done it in his branch 02:03 kahrl gregorycu: how about using a vector as a ring buffer 02:03 kahrl that should be fast for updating and iterating 02:03 gregorycu Probably faster than both 02:03 est31 yea 02:03 gregorycu Do we have a ring buffer type? 02:03 kahrl I don't think so 02:04 est31 write one 02:04 est31 there is some container.h file I think in util 02:06 gregorycu Writing a ring buffer... Feels like uni 02:09 gregorycu I agree with you guys that a RB is the way to go, not likely to easily have my PR approved though 02:09 gregorycu Or at least as easily as using an existing container 02:10 est31 well if that container works and so on 02:10 est31 just don't make the size a template argument 02:17 hmmmm alrighty I found the problem with irrlicht 02:17 est31 ? 02:18 hmmmm irr::core::vector3d::getLength() is returning -inf for X=-0.f, Y=0.f, Z=0.f 02:18 hmmmm I bet it's wrong SSE instructions being placed 02:24 gregorycu Were we going to get rid of irrlicht at some stage? 02:26 est31 gregorycu, you said you had a non irrlicht minetest it on your zeno account 02:26 gregorycu lol 02:27 gregorycu Did I tell you about my other project 02:27 gregorycu And that's getting minetest off Lua 02:27 gregorycu :P 02:28 hmmmm should I be reporting these bugs to clang, do you think? 02:28 hmmmm or are they going to say, "not our problem, you're using undefined behavior in this really dumb odd edge case" 02:29 VanessaE probably both, hmmmm 02:29 gregorycu If it's UB, they will say the latter 02:29 hmmmm not entirely sure what's UB and what isn't 02:29 gregorycu I know a clang tester, I could ask him 02:29 gregorycu Where is the code? 02:30 hmmmm the first clang-3.8-related-bug was a result of UB but you clearly expect a compiler to not act like that 02:30 * gregorycu digs up his copy of the standard 02:30 hmmmm this one I think is a result of misplaced SSE instructions and not a result of UB 02:30 hmmmm "oh yeah we know about this already" 02:30 est31 do you have a minimal example, not using irrlicht 02:30 hmmmm "just use --f-no-sse" 02:30 hmmmm "problem solved" 02:30 hmmmm not yet 02:30 est31 perhaps its irrlicht bug 02:31 hmmmm you know I sorta wonder if printf is telling me the truth 02:31 hmmmm because it doesn't always print the exact floating point numbers 02:31 hmmmm sometimes it's off by a unit in last place 02:31 est31 make it dump the memory 02:31 hmmmm maybe that -0.0 could be -0.0000004 or something 02:33 gregorycu T getLength() const { return core::squareroot( X*X + Y*Y + Z*Z ); } 02:33 gregorycu This function? 02:35 est31 kahrl, do the other combinations in the code work for you? 02:35 est31 and which terminal do you have 02:35 hmmmm looks innoccuous 02:36 hmmmm if you extract that specific function and try it, it won't work 02:36 hmmmm trying something though... 02:36 kahrl est31: xfce4-terminal 0.6.3 02:37 kahrl est31: haven't noticed any other problematic keys, but I haven't tested them systematically 02:38 gregorycu I think your printf is lying to you 02:38 est31 kahrl, can you rebase your patch then I can put it onto the branch 02:38 est31 or do you want it merged after my pr 02:39 hmmmm well it's possible, I'm going to check that right now 02:39 hmmmm the last compiler bug only happened in a very specific context 02:40 hmmmm okay looks like printf did lie 02:41 hmmmm http://fpaste.org/285897/14464320/ 02:42 gregorycu You sure? 02:42 gregorycu Isn't INF 0x4000000 02:42 hmmmm not sure, i'm checking 02:43 kahrl est31: https://github.com/kahrl/minetest/commit/9f5f389720497d0d1c310ff5203d4f166d672904 02:44 hmmmm exponent is 001101010b 02:44 hmmmm err, 0011 0101 i meant 02:44 gregorycu There is an is_inf function 02:44 hmmmm I dunno man it just looks like a denormalized number to me 02:45 est31 thanks kahrl pushed 02:45 hmmmm infinity, negative or positive, must have exponent == 128 02:45 hmmmm this isn't infinity 02:46 gregorycu Sorry, isinf() 02:47 hmmmm or !isfinite() :-) 02:52 gregorycu You should be able to whip up an equiv testcase right? 02:52 hmmmm not necessarily 02:53 gregorycu How are you repro this? 02:53 hmmmm I run minetest and walk around until the bad numbers start propogating 02:54 hmmmm I have a quick and dirty "if (!isfinite(m_speed.X)) { printf("bad bad thing here\n"); asm("int $3"); }" 02:55 gregorycu Ok 02:56 gregorycu What arch are you on? And are you able to print the bit representation of the numbers 02:56 gregorycu Ah, you've done that 02:56 gregorycu 0x00000000 0x00000000 0x1a800000 02:57 hmmmm http://fpaste.org/285899/43299914/ 02:58 hmmmm so it's definitely taking the surrounding context into consideration since i can't reproduce it here 03:03 hmmmm it's optimizing out a lot of the intermediate steps in my test case I think 03:04 hmmmm http://fpaste.org/285900/46433389/ 03:04 hmmmm see how it transforms my 0x1a800000 to 4273916046374600704 03:06 gregorycu There are also compiler switches that control what happens where there is a divide by zero 03:07 gregorycu (I'm lost for ideas) 03:07 hmmmm not going to get anywhere until i look at the assembly produced for the same code in mt 03:11 est31 man thats smart 03:11 est31 http://www.minetest.net/donate redirects to http://www.minetest.net/development/ 03:11 est31 quite a statement lol 03:11 gregorycu lol 03:14 gregorycu clearFPUException has popped out at me 03:16 gregorycu hmmmm: Trying adding some of that shit to your test case, if you can 03:19 hmmmm I dunno man but clang 3.8 is freaking bugged 03:20 hmmmm I'm comparing 3.4.x output to 3.8.x output 03:21 hmmmm the 3.4.x is much more compact and looks almost exactly like my sample case's output 03:24 hmmmm hmm 03:25 hmmmm 3.8.x almost makes it look like it duplicates the work... the first half looks almost identical to 3.4.x but it gets weird when 3.8.x uses rsqrtss instead of sqrtss 03:25 hmmmm just a disclaimer, i have absolutely no idea what rsqrtss does. 03:26 gregorycu Such low level stuff is generally beyond me 03:26 hmmmm okay, rsqrtss is reciprical square root, i.e. 1/sqrt(x) for lighting things 03:26 hmmmm why the fuck does it do this 03:27 hmmmm and more importantly, how can I force my minimal test case to do this 03:27 gregorycu It replaces sqrt with rsqrtss ? 03:27 est31 well then it makes sense that its infinite 03:27 est31 1/0 = inf 03:27 gregorycu lol 03:27 gregorycu Sounds so retarded 03:28 gregorycu It doesn't invert the result does it 03:28 hmmmm http://fpaste.org/285901/43489014/ 03:29 hmmmm this buggy bullshit is slated to become the default CC for FreeBSD 11 03:29 hmmmm which means I absolutely need to fix this or else I'll be stuck with a broken minetest when I go to update 03:30 est31 hehe yea just like me with the irrlicht 1.8.2 bug 03:31 hmmmm it's not just like a little broke 03:31 hmmmm within ~20 seconds of moving around your player freezes up and you can't do anything 03:31 est31 the irrlicht bug made the client crash the moment it started 03:31 est31 you didnt even come to mainmenu 03:31 gregorycu Does -ffast-math do anything? 03:32 hmmmm dunno 03:32 gregorycu Can you try? :) 03:32 hmmmm i don't know how much more effort i want to put on this right now 03:32 hmmmm i have other things i wanted to work on 03:44 est31 yeey the ncurses PR passed 1k lines 03:45 est31 btw kahrl is there a way of using cmake's own curses finding utilities? 03:47 hmmmm hmm 03:47 hmmmm alright so I can't get my hands on 3.7, the exact version nerzhul reported the original bug using 03:47 hmmmm he didn't report anything about this floating point bug which makes me suspect that it doesn't exist in 3.7 03:48 hmmmm clang 3.8 is the current development version, so I think this is something that might get fixed before release 03:48 hmmmm it seems like they know of some kind of SSE bug 03:49 hmmmm current workaround for clang 3.8 users: use -O0 or -mno-sse 06:14 hmmmm oh cool :-) 06:14 hmmmm i just discovered -mllvm -print-before-all 06:14 hmmmm this will help me track the source of the errant optimization 07:28 celeron55 hmmmm: i bet clang is just taking way too many freedoms with our -ffast-math 07:28 celeron55 try removing that flag and see if it still messes it up 07:28 gregorycu Great minds 07:34 hmmmm i already switched back to clang 3.4 and recompiled 07:35 hmmmm i could switch back and try it again but FUCK. THAT. i'm not waiting another 5 minutes for it to compile 07:41 celeron55 http://stackoverflow.com/questions/7420665/what-does-gccs-ffast-math-actually-do 07:41 celeron55 "Third, it makes the assumption that all math is finite, which means that no checks for NaN (or zero) are made in place where they would have detrimental effects. It is simply assumed that this isn't going to happen." 07:42 celeron55 how does this imply that it's allowed to make a result that is infinite? 8) 07:42 hmmmm it doesn't 07:43 celeron55 this gets kind of complicated though; there are a lot of things going on with -ffast-math 07:44 hmmmm from what I understand, the main problem is when the compiler is too clever for its own good and attempts to combine v3f::getLength() and v3f::normalize() 07:44 hmmmm normalize is the thing that requires inverse square root 07:45 celeron55 there are also partial flags that enable or disable only certain math optimizations 07:45 hmmmm like est says, though, if the norm of the vector is 0, the result of that operation will be infinity 07:45 hmmmm that's definitely documented behavior for rsqrtss 07:45 celeron55 i don't know where clang's documentation is but here are gcc's ones: https://gcc.gnu.org/wiki/FloatingPointMath 07:46 hmmmm honestly I could have fun with this all day 07:46 est31 so the problem is that the function works super well in 99.999999% of the cases, in the remaining part it freaks out 07:46 est31 almost all inputs are ok, no 07:46 est31 ? 07:46 hmmmm but it's probably not worth my while because clang 3.8 is a devel version and this bug is somewhat known already 07:46 hmmmm I'm going to just leave it go and I bet by the time 3.8 is released it'll work fine 07:47 celeron55 that's how i've been handling an usb sybsystem crash in the linux kernel for the past two years and it hasn't gone away 8) 07:48 hmmmm talked to some people on #llvm and they basically said that I need to first track down the errant optimization by going through all the IR logs after optimizing 07:48 hmmmm man lemme tell you 07:48 hmmmm nobody has time for this shit: http://llvm.org/docs/LangRef.html 07:49 est31 LLVM IR? 07:49 est31 nice thing 07:49 est31 rust compiles to it 07:49 hmmmm there are 4 IR levels 07:49 est31 but I know nothing about it :) 07:50 celeron55 hmmmm: what is the status of client-side scripting now? 07:50 hmmmm LLVM IR, DAG IR, MachineInst IR, and MachineInstructions 07:50 hmmmm hmm 07:50 hmmmm client side scripting is still a work in progress :-) 07:50 hmmmm I took a break from it for a while 07:50 celeron55 i have days when i might start doing it myself 07:51 est31 hmmmm wanted to do it I think 07:51 celeron55 okay, i'll assume that means you have nothing and i won't be doing duplicate work 07:51 est31 and didnt want sb else to do it 07:51 hmmmm haha 07:51 hmmmm no I really do have a large part of the basic infrastructure down 07:51 celeron55 you're taking too long; your turn is over as far as i am concerned 07:51 hmmmm ok fine then :-) 07:51 celeron55 publish it so that i can look at it 07:52 hmmmm I'm gonna be honest I did lose interest 07:53 celeron55 i'm not going to steer away from replacing all of it with something simpler if i feel like it though 07:53 celeron55 too complex things are very effective in removing motivation 08:09 hmmmm celeron55: I'd like to see what you come up with, besides, what I do have didn't really take that long 08:10 hmmmm the majority of the effort is really in deciding policy-wise how things should work and interact with each other 08:10 celeron55 show it to me still; i'm sure it will help coming up with either something different or something very similar 08:10 est31 yea agreed it should be spoken about before its implemented 08:11 celeron55 it has been spoken about a lot; that's not really an issue 08:11 celeron55 this is just about making proper use of existing work 08:12 hmmmm okay you got me I have practically nothing =] 08:12 celeron55 i want to see a diff no matter how small it is 08:33 hmmmm do you kind of see what I was going for? 08:39 celeron55 i guess it's kind of what you described some months back 08:40 hmmmm coding it up is the easy part, anybody can do that 08:40 hmmmm the difficult task is to define a good interface 08:41 est31 yup 08:41 hmmmm i started jotting down ideas for what parameters each event should include but they may be wrong 08:41 hmmmm or dumb 08:41 celeron55 i'm probably going to approach this quite differently but we'll see 08:42 hmmmm and then there are the obvious problems with the inherent asynchronousity of client scripting 08:42 celeron55 i don't have anything in mind 08:42 hmmmm but also a lot of advantages :-) 08:46 celeron55 interfaces are easy to define once you know what you want from them 08:48 celeron55 i predict that this isn't going to end up quite like anyone has imagined if i am the one who does this based on what i think is actually useful in subgames 08:49 celeron55 so prepare your butts 08:49 hmmmm now hold on, why don't you talk about it first before generating throwaway work 08:50 celeron55 i'm probably going to go quite far with the thing i described earlier about physics modifiers 08:50 hmmmm I guess 08:50 celeron55 having a huge lua environment that does freeform asynchronous stuff is not quite what i fancy 08:50 celeron55 nor is it very useful in practice 08:51 hmmmm it checks all the boxes in the requirements we defined up front 08:51 est31 celeron55, you want it to run in the render thread ?! 08:51 hmmmm if you go with the current execution model for server-side scripting you'll have to battle performance problems 08:51 celeron55 i want to start from very direct and easy-to-debug and easy-to-understand things that people will immediately find uses for 08:51 est31 basically let the client be single threaded too 08:52 hmmmm btw I readded this PR https://github.com/minetest/minetest/pull/3329 08:52 hmmmm it got automatically closed somehow 08:53 est31 I like its idea 08:53 celeron55 i like to think (now before i've even done anything) these client-side lua scripts a bit like shaders 08:53 celeron55 they shouldn't be in control or have access to everything 08:54 celeron55 except maybe for the asynchronous huge environment that might exist some day; but it's only one of the things one might want to use 08:55 hmmmm what kind of subgames do you have in mind? 08:57 celeron55 not really anything right now except that i would very much like to enable all kinds of vehicles to operate properly 08:57 est31 would already cover like 70% of the use cases 08:58 hmmmm right we're obviously going into this with different use cases in mind 08:58 hmmmm what i personally wanted to do was fix all the problems for every time we said "oh, darn, if only we had lua on the client problem X wouldn't exist" 08:59 hmmmm node placement prediction, latency, control over visual effects, etc. 08:59 est31 node placement isnt that important I think 09:00 hmmmm maybe not in the grand scheme of things, but minetest is incredibly hacky 09:00 est31 I mean sure there is all the protection thingy, but thats better controled on the server than on the client 09:00 hmmmm i never intend for client decisions to supercede server decisions 09:00 hmmmm both of them would make the same decisions and default to the server's in case the results don't match up 09:01 hmmmm but I just think it's really stupid when you try to break a chest and it gets mined, but then it reappears instantly 09:01 hmmmm what any other "game" would do in that situation would make a sound giving you instant feedback that what you're doing is wrong, and simply not allow the action to take place 09:02 est31 well if we add a feature that disables sneak glitch on the client, then all server owners will embrace that and will use it regardless that that is poinless 09:02 hmmmm the logic simply doesn't exist on the client for this, and the result is latency 09:02 hmmmm the latency helps a lot to break my game immersion 09:02 hmmmm same with mobs 09:02 est31 yup mobs are a problem right now 09:03 hmmmm I mean if celeron wants to make vehicles go zoom that's nice too but has almost nothing in common with my grand plan 09:03 nrzkt mobs is not a problem actually. The problem is the lua latency 09:03 hmmmm it seems to me like these are two separate systems that just both happen to use lua scripting 09:04 nrzkt it's why mobs are a bit laggy 09:04 est31 you got them work in your fork? 09:04 nrzkt it works yes 09:05 nrzkt without problem, the only problem i see is where there are many players, and then load, the acceleration server side is a problem for me because mobs continue on their velocity whereas they should stop :s 09:06 nrzkt i can run 10k mobs without lag, except on the rendering 09:06 chat6185 hi 09:07 celeron55 i think these systems have more common ground than hmmmm thinks, but there for sure are some things that only one of them can do and the other can't 09:09 nrzkt but a pure C++ implementation of mobs is far better, but everybody doesn't want mobs. Another problem with mobs, Lua / C++ implementation independant is the path finding which is not easy and does some strange things where there is a bit lag :) (like mobs jumping without reason) 09:10 AliSh hello 09:11 celeron55 ideally i would like to have a full lua-based abstraction layer between user input and what the client sends to the server, and i guess that could include a pre-check for whether a node is mineable; i don't know at this point 09:11 est31 I think something being there is better than nothing and big plans 09:12 celeron55 but this should allow for some forms of content-specific immediate feedback that minetest is lacking 09:13 celeron55 like, who needs anything asynchronous for invoking a sound effect or a bunch of particles 09:17 hmmmm you don't need it, but being asynchronous is a way to guarantee no time will be spent in lua where it matters 09:17 hmmmm the client is soooo much more timing sensitive than the server is 09:18 hmmmm you realize the golden rule of real-time systems is to not allow the execution of things with arbitrary timings, right? 09:19 celeron55 the golden rule if immediate feedback is to not queue the feedback calculation into some complex threaded system to get a result sometime when it is too late 09:19 hmmmm if you want to make lua execution synchronous, you'd have to somehow guarantee that its execution is bounded (probably with the lua debug instruction stepper, but that has the awful side-effect of slowing down execution a ton) 09:19 celeron55 of* 09:20 hmmmm if the feedback calculation is slow enough to give you a result "when it's too late", it definitely would be too late in the render thread 09:20 celeron55 well that's why it shouldn't be 09:20 hmmmm I don't know, how do games like Far Cry do it? they have client side lua scripting 09:21 celeron55 i guess i could move user input processing into a background thread and pass it to the main thread only after it has been processed 09:21 celeron55 that's kind of weird though 09:24 celeron55 anyway, i know the issue; at this point how i deal with it does not depend on what you have to say about it 09:25 celeron55 hopefully there will be some kind of natural enough way of handling this 09:29 celeron55 hmmmm: generally games have competent programmers behind them and don't have to worry about systems being completely misused 09:29 celeron55 so i'm not so sure if that would apply to minetest in the slightest 10:36 gregorycu I agree with celeron55. We should add a python scripting layer. 10:42 est31 man dude dont troll 10:42 gregorycu Not a fan of python? 10:43 est31 I hate it. 10:43 gregorycu Wow 10:43 gregorycu That was unexpected 10:43 nrzkt est31 why ? 10:44 est31 well a language is combined between the technical aspects and its preferences 10:45 est31 about the technical aspect, it is very dynamically oriented, that's nothing wrong but there are tons of languages out there that do the same 10:45 est31 and about the preferences, they are mostly shit 10:45 est31 I mean why the hell do you have __init__.py? 10:46 gregorycu lol 10:46 est31 or that thing that you dont see where your blocks close 10:46 gregorycu Ahh, you mean whitespace being meaningful? 10:47 est31 well whitespace is meaningful in almost all languages 10:47 est31 it separates words 10:47 est31 inta=b wont compile 10:47 est31 int a =b does 10:47 gregorycu In python inta=b will compile :) 10:47 gregorycu Ironically 10:48 est31 Also the combination of scripting language and OOP total BS 10:49 gregorycu It seems to work well, in practice 10:50 gregorycu Though I don't know good scripting languages like Lua 11:04 nrzkt est31: python works very well, yesterday i does a redis => pgsql output for my MT map (7.8M blocks), 8 mins :D 11:05 est31 well, thats string copy 11:06 nrzkt string copy + conversion binary<->utf8 :p 11:06 nrzkt it also converts my 75k accounts + privs from the MT files to pgsql entries in 1sec :p 11:08 gregorycu I'm trying to embed python in C++, it's "fun" 11:31 gregorycu Cheers bro 11:58 kahrl re: btw kahrl is there a way of using cmake's own curses finding utilities? 11:58 kahrl well, that cmake module I wrote does that by calling find_package(Curses) in case it can't find ncursesw by itself 11:59 kahrl find_package(Curses) won't look for ncursesw so we can't use it for that 12:08 celeron55 what 12:08 celeron55 python? why on earth 12:08 celeron55 that's ridiculous; it's just another scripting language 12:09 celeron55 and worse at being embedded 12:09 celeron55 we have had this discussion before; no use repeating it 12:12 gregorycu Python is better than Lua 12:12 gregorycu But yes, no use repeating it 12:12 celeron55 what 12:12 est31 in which way is it better 12:12 celeron55 i'm not going to end this discussion to you saying python is better than lua 12:12 est31 lua is better in all points 12:12 celeron55 do you want a kick or something 12:12 gregorycu (I will concede that Lua is better than Python to end this discussion) 12:13 celeron55 no 12:13 celeron55 i want you to concede that they are both similar languages and neither is better 12:13 est31 okay python is faster 12:13 est31 but only in Calinou's benchmark 12:13 celeron55 because that is a fact 12:13 gregorycu They are better at different things 12:13 est31 never trust a benchmark you havent faked etc etc 12:16 AliSh guys i wanna to fill my freetime with something in programming and i am searching for games. my primary dev language is .net but i also know java,c,cpp,python and so on. could anyone help to decide on that? i am web and office automation dev. i havent any exp on game dev 12:16 AliSh i dont like to dev on .net:) 12:16 est31 what is .net? 12:16 gregorycu C# 12:17 celeron55 lol 12:17 AliSh but its my job and i respect it 12:17 est31 I know VB.net 12:17 AliSh yes 12:17 gregorycu (Not really - but close enough) 12:17 gregorycu You know the shittest .NET 12:17 celeron55 welcome to open source, where we don't even know what .net is 12:17 AliSh :)))) 12:17 celeron55 instead we use other shitty technologies 12:17 gregorycu Why are you here? 12:17 est31 but free shitty ones! 12:18 celeron55 AliSh: what do you need us to decide? that's a weird question 12:18 AliSh i was searching for java game and i have palyed minecraft and mineetest before. now i am trying to decide. therefore i am here. 12:18 gregorycu Decide what? 12:19 AliSh hellp to my decision. 12:19 celeron55 if you want a java game, don't come here; it's not what this is 12:19 est31 well you cant program for minecraft unless you are mojang employee or you violate their IP 12:19 AliSh i love java and cpp 12:19 gregorycu hmm... 12:19 gregorycu Troll or stupid 12:19 est31 you can program for minetest, even if you call us idiots and send us patent lawsuits 12:19 est31 copyright lawsuits not allowed 12:19 nrzkt gregorycu, what do you think about a MT interface with Cobol ? :D 12:20 gregorycu There are probably elements of Cobol that would be better than Lua 12:20 est31 meh disregard that 12:20 AliSh and i couldnt make decesion for finding opensource project. i mean java or cpp 12:20 * est31 talkin shit 12:20 celeron55 AliSh: well, feel free to contribute something to minetest; it's really just a matter of writing something that people want and creating a pull request 12:21 gregorycu Like my excellent pull request, that only needs one more +1 12:21 celeron55 or some of the many projects related to minetest 12:21 nrzkt gregorycu, i set mine 12:22 AliSh i will try. 12:22 gregorycu That was release mode :P 12:26 gregorycu Thank you est31 12:47 est31 okay question do we merge PRs like #3309 that have multiple, not very closely related commits like there un-squashed, or should they be squashed? 12:47 ShadowBot https://github.com/minetest/minetest/issues/3309 -- AreaStore cleanup by ShadowNinja 12:48 est31 SN wants to merge them un-squashed, so I wonder whether we want to go that way 13:01 est31 (I don't really care myself, as long as we don't merge PRs with closely related changes or where followup commits do nothing else than fix regressions of earlier commits) 15:02 celeron55 est31: i guess maybe it could be merged un-squashed 15:08 gregorycu As it turns out, vector + sort + unique is sometimes faster than set 15:08 celeron55 that shouldn't be news to anyone 15:09 gregorycu The news is Map::spreadLight can be made faster by using vector+sort+unique 15:10 celeron55 yes, that might be news 15:15 gregorycu I can make spreadLighting() go from 50% of transformLiquids(), down to 30% 15:16 gregorycu spreadLight is about 10% CPU running around in singleplayer 15:17 nrzkt gregorycu, noticed same usage in singleplayer with valgrind 15:17 gregorycu (I'm on windows, by the way) 15:18 celeron55 make sure to measure performance with optimizations enabled 15:18 celeron55 because if you're just optimizing against an unoptimized implementation of std::set, that's dumb 15:18 gregorycu :/ 15:18 gregorycu I'm doing the Release With Debug Info 15:19 celeron55 it's -O1; you will have to measure your final patch with -O2 too 15:20 celeron55 s/measure/compare/ 15:23 gregorycu Apparently that O2 15:30 gregorycu All this excitement is too much for me 15:30 gregorycu I'm off to bed 15:37 jin_xi really thinking about other languages for scripting? let me propose guile! its the best and does it all! 17:19 celeron55 i wonder if people get mad at me if i merge those two PRs that i made 17:20 hmmmm yes, they would 17:20 hmmmm there's a review process that you'd be otherwise bypassing 17:21 hmmmm minetest development isn't the wild west any longer 17:23 nrzkt wild wild west ! 17:28 celeron55 by the way, is the subsystem maintainer stuff being utilized at all now or not? 17:29 celeron55 it seems to me that it is not, at all 17:29 hmmmm i think it's kind of a dumb concept 17:30 hmmmm in practice it functioned as a way for less-competent individuals to shovel in their own shitty code without peer review 17:30 celeron55 should it be officially taken out from use then? 17:30 hmmmm absolutely 17:31 hmmmm if other developers don't understand what's going on in that section of the code, well, there's an opportunity for them to learn something new 17:31 celeron55 well the underlying issue it tried to solve was that nobody was willing to spend the time reviewing something like that 17:32 celeron55 but solving or "solving" it like that doesn't really result in very good quality 17:33 celeron55 you have to keep in mind that at that time you weren't active, for example, and somebody not being active really hinders the review process 17:33 est31 I just wanted to point out that I fully agree with hmmmm on this point. the maintainer system creates a hugely broken up codebase, and even the kernel has problems with it. Just read linus' latest rant there he talks about code that was in network code a long time which he really didnt like and now he wants it removed. better have it all reviewed by some other people than the maintainer, then the likelihood that code quality differs from subsystem 17:33 est31 to subsystem gets smaller. Not eliminated, but smaller. 17:43 celeron55 i removed all the useless crap from this page then: http://dev.minetest.net/Organisation 17:45 Krock +1 for clean, TL;DR texts 17:46 hmmmm I think est is referring to greg kroah-hartmann's propencity to allow lower-quality code get in because he wants to avoid conflict and strong words 17:46 hmmmm linus cracked down on that recently IIRC 17:46 hmmmm yeah I tried being agreeable for a period of time and look at where it got minetest 17:46 celeron55 i can see the pattern too 8) 17:47 hmmmm now, "no" should be the default answer to any PR until everybody is fully convinced that the project is so much better with this patch 17:48 celeron55 well 17:48 hmmmm it's not just poor quality code that should get denied, but meaningless changes that don't really help much 17:49 hmmmm you should always ask yourself, "how does what I'm doing make minetest better than it was a commit ago" 17:54 celeron55 this might be obvious, but: the only way that approach can work is if all members of the core team trust each other... which is true for any approach though; in this approach failure to achieve that results in no changes being made; in some other approach it results in random changes being made 17:55 celeron55 the underlying issue with minetest is always the coherency of the core team 17:56 celeron55 it's a hard issue because there exactly isn't a flow of people into minetest where we could just pick ones that agree with eg. me 17:57 celeron55 it's incredible that this team is as big and as coherent as it is now, to be honest 17:57 celeron55 even while it's bad compared to something else 17:58 hmmmm i guess it must be because i have no life 17:58 hmmmm i stick around for a video game that i don't even play 17:58 celeron55 well that's what i'm doing too; it's kind of stupid 17:58 hmmmm i must be a fuckin nerd 17:59 hmmmm lol SN's real name is Owen 17:59 hmmmm he's like that office supply guy from Less Than Perfect 17:59 celeron55 www.minetest.net doesn't say anymore that minetest is developed by a bunch of lunatics, by the way 18:00 celeron55 i think that has been the only right way of putting it 18:00 hmmmm mental illness is not something that just goes away 18:01 hmmmm but uh, on a serious note, I think an important change in minetest's governance is where we realized as a team that minetest may be community-driven but certainly not community-managed 18:02 PilzAdam does any of the devs actually play Minetest? 18:02 hmmmm i think a short time after you "quit" around 0.4.6 people decided that minetest "belongs" to "everybody" 18:02 hmmmm so everybody felt like we were obligated to accept our contributions 18:03 hmmmm s/our/their/ 18:03 hmmmm that's where the quality took a nose dive and now we're just about recovered from that 18:03 hmmmm i think 18:03 celeron55 i like the sound in that; it means the quality set up by me was good! 18:04 hmmmm well you are a decent dev 18:04 hmmmm but more than that, it was being written mostly by a single person 18:04 hmmmm so all of your designs can be coherent and consistent 18:04 hmmmm and you have much more knowledge of the internal design and are aware of subtle side effects 18:05 celeron55 i think you can't really say what you are saying without actually putting up the numbers about how many and how buggy things have been made in each period of development 18:06 hmmmm fair enough 18:06 celeron55 i know it feels like what you are saying, but it might just feel like it and actually still be generally fine 18:07 celeron55 the number of features made when the community explosion happened was rather large; we would simply not have those by now if it didn't happen 18:09 celeron55 altough 18:10 celeron55 we don't actually have data about which ones of those are actually good enough for actual usage either 18:10 hmmmm remember the finite liquid/weather mess 18:10 hmmmm i'd also argue that particlespawners was bad 18:10 celeron55 object attachments is one of them; it's quite crappy in any real use 18:11 hmmmm in terms of implementation quality or design? 18:11 celeron55 both 18:12 celeron55 but what makes it the worst is the server's tendency to not update things at a regular interval in real use 18:13 celeron55 you can attach something to something, but the end result is almost useless due to other factors 8) 18:48 nrzkt PilzAdam, maybe i'm late, but i can say i'm playing on my server, yes 19:01 crazyR i think sometimes, the best ideas come from those that lack the ability to implement them. of in some cases can implement them but in a dirty manor. Quality of commits are important as hmmmm is committed too but like celeron55 mentioned Minetest probably wouldn't have progressed this far without the hackery that was merged previously. I suppose there needs to be some sort of compromise or maybe even a developer that is willing to fine 19:01 crazyR tune/fix/improve commits deemed to be hackery etc... just my 2 pence lol :S 19:15 paramat hi hmmmm i'd like to merge #3324 soon, please can you review when you have time? all standard biome-API-mapgen stuff i'm fairly sure it's ok 19:15 ShadowBot paramat: Error: Delimiter not found in "Page is too big or the server took too much time to answer the request." 19:16 paramat https://github.com/minetest/minetest/pull/3324 19:18 Krock just.... wow, great job, paramat! 19:19 paramat needs so much tuning though, that's the hard part 19:20 celeron55 paramat: what's the speed of it in this form compared to being a mod? 19:20 celeron55 i'm sure you have had to say this a million times but whatever 19:21 paramat in core 100ms per chunk, as a mod 2s per chunk 19:21 hmmmm lol :/ 19:22 paramat looks like i broke bot 19:22 hmmmm paramat: I did look at it a little yesterday 19:22 hmmmm need to take a closer look 19:22 hmmmm pretty standard stuff I guess 19:22 paramat yeah 19:23 paramat except 3d noise for all caves and tunnels, doesn't use cavegen.cpp 19:27 celeron55 how am i supposed to use this 19:29 paramat ? 19:29 celeron55 hmm, creating a world using --server --world seems to work 19:29 paramat oh it's hidden 19:29 celeron55 is it even possible to use a hidden map generator from the menu; it resets to v5 19:30 celeron55 and doesn't let use something from the config that it thinks isn't valid 19:30 celeron55 i guess manually editing minetest.conf and --server --world is the only way to start a world with a hidden mg 19:30 paramat needs a mod to 'set mapgen parameters' 19:30 celeron55 oh, maybe that too 19:31 paramat i can paste if you want 19:31 celeron55 i spawned at the middle of a huge and deep ocean so i think i already got what i wanted 19:32 paramat ah spawn may fail because of 'findspawn' not finding low land 19:32 paramat but that's configurable now 19:33 paramat it's on a big scale so fly for a few kns 19:33 celeron55 i had to fly 1500 nodes to get to dry land 8) 19:33 paramat lol 19:33 celeron55 watershed 5/5 19:34 celeron55 in all its ridiculousness 19:34 paramat there's huge lava caves at y = -768 19:36 paramat it's not a copy of the watershed mod, closer to my 'riverdev' mod and a development of those 2 19:58 hmmmm I welcome paramat's mapgens in the core tbh 19:58 hmmmm they're very nice looking and exactly the kind of thing other people would want to play on 19:59 celeron55 they need to be handled a bit differently though, like this one which can create a large ocean where the current spawn algorithm can't find a location to spawn in by defaul 19:59 celeron55 +t 20:00 celeron55 large features are nice but you can't handle them like small ones 20:01 hmmmm large features help to make the map more interesting and less "random crap" but i feel like their charm is broken by the current sendblocks algorithm 20:01 hmmmm there's this huge cool looking mountain right in front of your face but you can't see it because the blocks aren't received yet 20:01 hmmmm :| 20:02 hmmmm after a certain difference we need to prioritize transparent blocks vs. blocks with opaque content but i wonder how much that would help 20:04 PilzAdam hmmmm, the client should request blocks from the server, instead of the server guessing which blocks the client may want to have 20:04 PilzAdam this would also allow modified clients to generate maps on running servers 20:07 celeron55 i wouldn't say that so lightly when it already was attempted once by someone and resulted in only spectacular lagginess and bugs that stopped the whole algorithm from doing anything 20:08 celeron55 yes it needs to improved; how exactly? that's for the one who is going to do it 20:10 * twoelk remembers trying to keep a Mt.Meru in memory for making screenshots while not allowed to use fly 20:22 rubenwardy are completely blank blocks - full of air - compressed to neglibility? 20:23 hmmmm i would assume they're 18 bytes 20:23 hmmmm (i.e. 17 bytes for the gzip header and 1 byte for the actual data) 20:25 celeron55 of course they are (a block has multiple zlib-compressed pieces appended one after another though and some raw data, but the end result is not much) 20:26 celeron55 more than anything else it's the matter of logistics of managing thousands of blocks 20:27 celeron55 and prioritizing them 20:28 celeron55 altough, if you want to see a mountain, it's not thousands of blocks 20:28 celeron55 it's more like tens of thousands 20:29 celeron55 that starts to be very expensive to process and probably needs a server-side cache of simplified versions of blocks 20:29 twoelk having to find a 2km high mountain by bumping into it can be annoying :-P 20:31 Sokomine at least it'll be possible to find out that it's a mountain if it's steep enough. if not, you'll never notice 20:32 celeron55 i would really like to experience a long-distance first-person view of watershed though 20:32 * twoelk sees a ghost of farmesh grinning in the fog 20:32 celeron55 maybe i need to implement that before anything 20:33 celeron55 there are a lot of things to do i guess 20:33 hmmmm how are you going to do it? 20:34 celeron55 i am not seeing any farmesh ghosts grinning in the fog, but i did implement something related to this in buildat 20:34 hmmmm farmesh is really difficult to implement now 20:35 hmmmm maybe it sorta worked at one point in history when the mapgen was simple and totally static 20:35 celeron55 i am not going to explain; explaining always eats away motivation because you feel like you did something while you actually didn't do anything 20:35 hmmmm true 20:35 hmmmm ok then 20:37 celeron55 it's not like anyone else is going to do it anyway 20:38 twoelk http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-tools/1261810-eihort-an-opengl-world-viewer-latest-0-3-14-2013 <- ever seen this in action, it is or was extremely fast in comparism to mc - but it was reading only 20:40 celeron55 it's not hard to render a lot of stuff 20:41 celeron55 just collect everything in one buffer, throw it at the GPU and let it render it 20:41 celeron55 updating it dynamically while a game is attempting to run smoothly is much harder 20:42 celeron55 altough, i don't think rendering individual nodes is going to get us where we want 20:43 celeron55 or, get me where i want 20:46 twoelk just thought as open source there might be ideas hidden there - or rather hoped 20:54 hmmmm heh you don't think I want this as well? 20:55 hmmmm in any case a strategy that would "work" (but be very intensive) might be to store a mipmap of mapblocks 20:55 hmmmm i think we might've talked about htis already 21:02 Sokomine quite likely. it's a wish that comes up whenever playing. trying to build a tower or climb a mountain in order to get a better view just seems natural - and it's surprising (when new to the game) that the landmark just isn't visible from afar 21:06 celeron55 how do i pass -Wnodeprecated-declarations to cmake so that it would pass it to g++ 21:06 celeron55 this thing floods me with useless warnings that make it very hard to see the errors that actually matter 21:07 celeron55 oh, i was using a different build type than i thought 22:57 paramat celeron55 > ".. a long-distance first-person view of watershed .." reminded me of http://i.imgur.com/jyTVdYC.png the variable-zoom 3D minimap of lua watershed 22:59 celeron55 what was the scale in that particular picture? 23:00 paramat 1 node is 1 mapblock 23:02 celeron55 ok, yeah; the actual challenge is making each of those look like they were a real-life mapblock while not rendering much more than that for each of them 23:02 celeron55 real-life... i mean real-sized 23:03 celeron55 i came up with some tricks in buildat that i can try to use i guess 23:03 celeron55 rendering nor transferring 23:04 hmmmm cool 23:04 hmmmm are those voronoi cell-based biomes? 23:05 paramat no heat/humidity noises selecting 9 or so biomes, as in the watershed mod 23:06 hmmmm ahh 23:06 hmmmm I didn't realize heat/humidity selection could result in such shapes 23:07 hmmmm honestly for as good as the heat/humidity intersection biome system works, i hate the shapes they make 23:07 paramat both spread 1000, 3 oct, 0.5 persist 23:10 paramat but in riverdev mod i use 3 oct, 0.4 persist, i feel heat/humidity should vary fairly smoothly, it also reduces tiny biomes and narrow biome stripes 23:10 paramat i was actually considering persist 0.4 for the biome API 23:15 VanessaE ^^^^ should be fixed now. 23:16 VanessaE network outage affecting dac.com. apparently it confused ShadowBot :) 23:17 paramat good 23:21 paramat 0.4 persist seems just enough for decent shapes while also reducing small-scale detail 23:34 paramat mmh but then MT has always used 0.5 and the smaller scale detail is nice, think i'll leave it as is :} 23:54 paramat to make findSpawnPos more robust and compatible with larger mapgens i suggest we increase the number of attempts (and therefore range), a slightly slower spawn is preferable to being buried at (0,0,0). i'll make a PR 23:57 hmmmm I dunno paramat... 23:57 paramat however this means players scattered even wider 23:58 celeron55 i think it should do what it does now, and then if it doesn't find a spawn, move on to a large area suitable for watershed 23:59 paramat another idea: let the mapgen decide what vertical spawn range to allow. currently it's water level + 16, but should be set per mapgen