Minetest logo

IRC log for #minetest-dev, 2015-11-02

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

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:12 paramat left #minetest-dev
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:04 gregorycu joined #minetest-dev
01:12 Supertan1er2 joined #minetest-dev
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 Puka joined #minetest-dev
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<float>::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 Miner_48er joined #minetest-dev
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
05:15 Puka_ joined #minetest-dev
05:39 Puka joined #minetest-dev
05:42 Puka_ joined #minetest-dev
05:46 Puka joined #minetest-dev
06:09 Player2 joined #minetest-dev
06:14 hmmmm oh cool :-)
06:14 jin_xi joined #minetest-dev
06:14 hmmmm i just discovered -mllvm -print-before-all
06:14 hmmmm this will help me track the source of the errant optimization
06:33 Hunterz joined #minetest-dev
06:45 srifqi joined #minetest-dev
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/74206​65/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 nrzkt joined #minetest-dev
07:53 celeron55 too complex things are very effective in removing motivation
08:01 Darcidride joined #minetest-dev
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:14 Lunatrius joined #minetest-dev
08:20 proller joined #minetest-dev
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:47 alish joined #minetest-dev
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 CraigyDavi joined #minetest-dev
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 alish left #minetest-dev
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 CraigyDavi joined #minetest-dev
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:56 nrzkt joined #minetest-dev
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 alish joined #minetest-dev
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 alish left #minetest-dev
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 joined #minetest-dev
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 joined #minetest-dev
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:18 PilzAdam joined #minetest-dev
10:22 julienrat joined #minetest-dev
10:36 gregorycu I agree with celeron55. We should add a python scripting layer.
10:38 julienrat left #minetest-dev
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:12 AliSh joined #minetest-dev
11:20 Darcidride joined #minetest-dev
11:31 gregorycu Cheers bro
11:47 Taoki[mobile] joined #minetest-dev
11:58 kahrl re: <est31> 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:06 DFeniks joined #minetest-dev
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:11 AliSh joined #minetest-dev
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:24 zat joined #minetest-dev
12:25 AliSh left #minetest-dev
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:00 est31 joined #minetest-dev
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)
13:02 FR^2 joined #minetest-dev
13:27 blaze joined #minetest-dev
13:46 hmmmm joined #minetest-dev
14:08 julienrat joined #minetest-dev
14:19 julienrat joined #minetest-dev
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:29 deltib__ joined #minetest-dev
15:29 jin_xi joined #minetest-dev
15:30 gregorycu All this excitement is too much for me
15:30 gregorycu I'm off to bed
15:30 JohnnyComeL8ly joined #minetest-dev
15:33 dzho_ joined #minetest-dev
15:33 Lunatrius` joined #minetest-dev
15:36 sfan5 joined #minetest-dev
15:36 ekem joined #minetest-dev
15:37 jin_xi really thinking about other languages for scripting? let me propose guile! its the best and does it all!
15:41 proller joined #minetest-dev
15:42 VanessaE joined #minetest-dev
16:05 JohnnyComeL8ly joined #minetest-dev
16:08 rom1504 joined #minetest-dev
16:17 kaeza joined #minetest-dev
16:51 Amaz joined #minetest-dev
16:58 Krock joined #minetest-dev
17:06 Fixer joined #minetest-dev
17:06 ShadowBot joined #minetest-dev
17:11 ShadowBot joined #minetest-dev
17:11 ShadowBot joined #minetest-dev
17:16 Hunterz joined #minetest-dev
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:30 est31 joined #minetest-dev
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 ShadowBot joined #minetest-dev
17:32 ShadowBot joined #minetest-dev
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:35 ShadowBot joined #minetest-dev
17:38 PilzAdam joined #minetest-dev
17:39 ElectronLibre joined #minetest-dev
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:55 Calinou joined #minetest-dev
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:58 ShadowNinja joined #minetest-dev
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:06 twoelk joined #minetest-dev
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:16 nrzkt joined #minetest-dev
18:18 ShadowBot joined #minetest-dev
18:18 ShadowBot joined #minetest-dev
18:20 Darcidride joined #minetest-dev
18:25 Robert_Zenz joined #minetest-dev
18:42 Miner_48er joined #minetest-dev
18:48 nrzkt PilzAdam, maybe i'm late, but i can say i'm playing on my server, yes
18:52 zupoman joined #minetest-dev
19:01 younishd joined #minetest-dev
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:05 rubenwardy joined #minetest-dev
19:06 paramat joined #minetest-dev
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 ShadowBot joined #minetest-dev
19:16 ShadowBot joined #minetest-dev
19:16 jin_xi joined #minetest-dev
19:16 paramat https://github.com/minetest/minetest/pull/3324
19:17 ShadowBot` joined #minetest-dev
19:18 ShadowBot joined #minetest-dev
19:18 ShadowBot joined #minetest-dev
19:18 Krock just.... wow, great job, paramat!
19:19 paramat needs so much tuning though, that's the hard part
19:19 ShadowBot joined #minetest-dev
19:19 ShadowBot joined #minetest-dev
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 ShadowBot` joined #minetest-dev
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:22 ShadowBot joined #minetest-dev
19:22 ShadowBot joined #minetest-dev
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 jin_xi joined #minetest-dev
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:50 ShadowBot_ joined #minetest-dev
19:56 paramat left #minetest-dev
19:57 ShadowBot joined #minetest-dev
19:57 ShadowBot joined #minetest-dev
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 Puka joined #minetest-dev
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:02 ShadowBot` joined #minetest-dev
20:03 ShadowBot joined #minetest-dev
20:03 ShadowBot joined #minetest-dev
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:04 ShadowBot joined #minetest-dev
20:04 ShadowBot joined #minetest-dev
20:06 ShadowBot joined #minetest-dev
20:06 ShadowBot joined #minetest-dev
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:25 ShadowBot` joined #minetest-dev
20:26 ShadowBot joined #minetest-dev
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:27 ShadowBot joined #minetest-dev
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 ShadowBot` joined #minetest-dev
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:31 ShadowBot` joined #minetest-dev
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 ShadowBot` joined #minetest-dev
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/mappin​g-and-modding/minecraft-tools/1261810-eihor​t-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
21:30 Puka_ joined #minetest-dev
21:43 Darcidride joined #minetest-dev
21:56 sloantothebone joined #minetest-dev
22:02 Darcidride joined #minetest-dev
22:07 Player2 joined #minetest-dev
22:14 sloantothebone joined #minetest-dev
22:20 sloantothebone joined #minetest-dev
22:21 luizrpgluiz joined #minetest-dev
22:22 luizrpgluiz left #minetest-dev
22:44 JohnnyComeL8ly joined #minetest-dev
22:53 paramat joined #minetest-dev
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 ShadowBot joined #minetest-dev
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:40 Puka joined #minetest-dev
23:48 Puka_ joined #minetest-dev
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

| Channels | #minetest-dev index | Today | | Google Search | Plaintext