Minetest logo

IRC log for #minetest-dev, 2014-02-07

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

All times shown according to UTC.

Time Nick Message
00:05 rsiska joined #minetest-dev
00:41 Taoki joined #minetest-dev
01:31 Megaf joined #minetest-dev
01:34 farlepet joined #minetest-dev
02:07 farlepet joined #minetest-dev
02:39 OldCoder joined #minetest-dev
03:06 bas080 joined #minetest-dev
03:48 farlepet joined #minetest-dev
04:53 Miner_48er joined #minetest-dev
06:12 darkrose joined #minetest-dev
06:12 darkrose joined #minetest-dev
06:17 damiel joined #minetest-dev
06:54 rsiska joined #minetest-dev
07:47 salamanderrake joined #minetest-dev
08:06 CheapSeth joined #minetest-dev
08:18 bas080 joined #minetest-dev
08:27 whirm joined #minetest-dev
08:28 CheapSeth joined #minetest-dev
09:45 Calinou joined #minetest-dev
09:46 CheapSeth joined #minetest-dev
10:12 CheapSeth joined #minetest-dev
10:42 darkrose joined #minetest-dev
10:42 darkrose joined #minetest-dev
11:50 ImQ009 joined #minetest-dev
11:55 rubenwardy joined #minetest-dev
12:12 Calinou joined #minetest-dev
12:56 BlockMen joined #minetest-dev
12:57 BlockMen ShadowNinja, https://forum.minetest.net/vie​wtopic.php?pid=128896#p128896. seems to be caused by 85fe75d1cb
13:17 PilzAdam joined #minetest-dev
13:31 ShadowNinja BlockMen: Either he's running a server on the same port, or I'll need a --info or --verbose log to help.
13:32 BlockMen ShadowNinja, i can reproduce without another server, so i doubt its that.
13:33 BlockMen is it a windows only problem again?
13:43 werwerwer_ joined #minetest-dev
13:44 hmmmm joined #minetest-dev
14:06 BlockMen bbl
14:07 BlockMen left #minetest-dev
14:08 Megaf joined #minetest-dev
14:23 NakedFury joined #minetest-dev
14:42 zat joined #minetest-dev
14:51 Yepoleb joined #minetest-dev
15:03 Megaf Can I merge o my minetest "fork" others pull request to the main minetest?
15:03 Megaf Can I merge to my minetest "fork" others pull request to the main minetest?*
15:03 Megaf how?
15:03 iqualfragile joined #minetest-dev
15:05 RealBadAngel get patch file and apply it to your tree
15:06 RealBadAngel for example: https://github.com/minetest/minetest/pull/1139
15:06 RealBadAngel add .patch to that link
15:06 RealBadAngel and you will get ready patch file
15:06 RealBadAngel wget it to your mt directory
15:07 RealBadAngel and git apply patch_file_name
15:09 Megaf hm
15:15 VanessaE or you can just,   git pull https://github.com/sapier/minetest.git silence_hud_errormessage
15:15 VanessaE forget about the .patch stuff.
15:21 Megaf hm
15:21 Megaf heh, I applied two patches and now it doesnt compile anymore
15:22 Megaf but may be something I did
15:22 * VanessaE waits for sapier
15:23 Megaf yep, it was my fault
15:23 Megaf or CMakesCache fault, however
15:27 Megaf PNG warning: Interlace handling should be turned on when using png_read_image
15:27 Megaf is this a bug?
15:28 VanessaE no idea.
15:28 Megaf on the client side
15:28 Megaf Loaded texture: /home/megaf/MegafTest/textur​es/base/pack/menu_header.png
15:28 Megaf 13:26:14: ACTION[main]: Client: Contacting remote server "http://megaf.no-ip.info:8080/media/"
15:28 Megaf PNG warning: Interlace handling should be turned on when using png_read_image
15:29 VanessaE that's a sort-of bug but it's harmless, ignore it.
15:31 CheapSeth joined #minetest-dev
15:38 iqualfragile joined #minetest-dev
15:39 Megaf bye all
15:40 Zeitgeist_ joined #minetest-dev
15:45 minetest-dev joined #minetest-dev
15:46 VanessaE minetest-dev-ception!
15:46 VanessaE :)
16:02 nore joined #minetest-dev
16:12 Jordach joined #minetest-dev
16:20 minetest-dev left #minetest-dev
16:30 VanessaE *looks at clock*
16:30 VanessaE come on sapier, get home from work already.....
16:30 VanessaE :P
16:34 blaise joined #minetest-dev
16:49 EvergreenTree joined #minetest-dev
16:50 EvergreenTree joined #minetest-dev
17:11 Selat joined #minetest-dev
17:14 Selat What about complete rewriting of pathfinder class? I wrote reasons here https://github.com/minetest/minetest/pull/1113.
17:22 ShadowNinja Selat: You're welcome to improve it's speed, if you think you can without breaking anything.
17:55 Weedy_lappy joined #minetest-dev
18:03 VanessaE joined #minetest-dev
18:03 ImQ009 joined #minetest-dev
18:15 VanessaE joined #minetest-dev
18:20 VanessaE joined #minetest-dev
18:26 Calinou joined #minetest-dev
18:34 emptty joined #minetest-dev
18:48 ShadowBot joined #minetest-dev
18:52 sapier joined #minetest-dev
18:55 sapier now I'm here VanessaE but you aren't :-) guess something is wrong about 1139?
19:00 sapier Selat, ther's no "slow" or "fast" dejkstra algorithm dejkstra is dejkstra everything else isn't dejkstra ;-) ... and A* .. true it uses a very simple method of A* if you see a reliable yet better mechanism to find the first quess direction you're welcome. ... and recursion ... hmmm recursion is neither fast nor slow by definition. The only thing about it is it requires quite a lot of memory in worst case ;-). You're welcome to write ano
19:02 sapier btw the used A* is quite fast in typical situations. Sad thing is you usually don't know if you're in a typical or worst case situation prior doing it
19:03 sapier please use a own issue for things like that... especialy this issue is already way to crowded ;-)
19:05 sapier https://forum.minetest.net/vie​wtopic.php?pid=128896#p128896 how did that guy manage to start it ipv6? I guess this wasn't intended?
19:07 Selat spaier: 1. From wiki: "In mathematics and computer science, an algorithm is a step-by-step procedure for calculations". So speed of it depends of used data structures.
19:07 Selat *depends on
19:08 sapier and?
19:08 Selat Class "pathfinder" uses the worst possible structure. It's possible to implement dejkstra and A* with set - and it will be much faster
19:09 Selat std::set
19:09 sapier well it's easy to benchmark ;-) so you're welcome to do it
19:10 Selat And recursion is much slower than queue for the same algorithm.
19:10 sapier as I said problem with this code isn't it's typical time but it's worst case time ... I'm not sure if this will change by better datastructures.
19:10 VanessaE joined #minetest-dev
19:12 sapier It's been my first pathfinding algorithm so I'm quite sure it can be done better. Feel free to improve it that's how open source works
19:13 Selat In any way dejkstra' algorithm implementation seems to be wrong (I'm not sure that this strange code will work properly). Actually in pathfinder it looks like just simple bfs.
19:13 sapier it does work properly
19:14 sapier you can enable the debug functions to see what it's doing
19:15 sapier and dejksta isn't a fast algorithm ... can't be fast as any other algorithm with guaranteed shortest path
19:17 Selat Dejkstra is the fastest algorithm. It's complexity for sparse graphs O(m log n). A* is just a crutch for one certain type of graphs.
19:18 sapier no A* is just a shortcut algorithm trying smart guessing correct direction and aborting on found path immediatly
19:18 sapier dejkstra is fastest algorithm with guaranteed shortest path
19:21 Selat In the general case it's impossible to guess the shortest pass (don't forget that graph is just an mathematical abstraction).
19:22 sapier well you won't find a faster algorithm then deijstra in general but A*'s benefit is you often don't care if a path has length 100001 or 100002
19:24 sapier the A* I implemented uses manhattan distance to guess ... that's quite a simple way of guessing
19:24 sapier but results in drastic improvement in general case
19:25 sapier long talk small result, if you can improve it, do it!
19:26 sapier Any improvement is welcome
19:26 sapier and pathfinding improvement can be justified by hard numbers so there ain't even need to discuss about it
19:29 sapier https://github.com/minetest/minetest​/blob/master/src/main.cpp#L1230-1270 where exactly is the memory leak selat?
19:30 Selat It's just good style to delete all allocated objects and didn't rely on OS.
19:31 Selat By the way this https://github.com/minetest/minetest/blob/mast​er/src/script/lua_api/l_mainmenu.cpp#L868-869 is really strange.
19:32 sapier yes I've seen it too there once was a else case evaluating the now unused variable
19:33 sapier Selat I recommend just writing a pull request for fixes like the memory leak ... will save a lot of tim re evaluating things you already found
19:34 Selat Here https://github.com/minetest/minetest/issues/1137 is link to commit that fixes leak.
19:36 sapier ahhh :-)
19:36 sapier ok, that's not the usual way to do it ;-)
19:38 Selat ok, I'll send now pull request that fixes these bugs. Should there be a such condition: (bytes_read == 0 ) || ((bytes_written = fwrite(read_buffer, 1, bytes_read, targetfile)) != bytes_read)?
19:38 sapier no I already fetched it, was meant for next time
19:43 sapier what do you mean with the condition? the one in code is different from what you've written
19:43 Selat Meanwhile: this https://github.com/Selat/minetest/b​lob/master/src/pathfinder.cpp#L629 is called DFS http://en.wikipedia.org/wiki/Depth-first_search - not dejkstra.
19:44 Selat I meant is it correct fix.
19:45 sapier well that one is just a optimization to not have to read data from map and calculate cost of transition each time. accessing map is quite costly in minetest
19:49 sapier it's not calculating the total cost at this node so it's not dfs
19:50 sapier well ok it is
19:50 Selat ok, but where is actually pathfinder? The only switch that checks algorithm calls this method.
19:59 sapier actually costmap already does most of work true
20:01 sapier btw in case each transition cost is equal BFS and Dijkstra are equivalent
20:01 Selat Yes.
20:01 sapier and tha's exactly the situation we have
20:02 sapier so it's BFS AND Dijkstra ;-)
20:02 Selat BFS isn't the same as DFS.
20:03 sapier quite some time since I did this :-)
20:03 sapier in this special case it is
20:03 Selat No. DFS uses stack, and bfs queue.
20:03 Selat A* is the same as DFS with some crutches.
20:04 sapier what do you believe to be the difference between queue and stack?
20:04 Selat LIFO and FIFO.
20:05 sapier ok so we're talking about same thing ... just wanted to make this sure first
20:06 sapier I suggest just trying to implement it with fifo ... maybe it's gonna behave better
20:07 Jordach joined #minetest-dev
20:07 sapier actually this was intended to be optimized for multicore usage but that optimization was never done
20:09 xyz joined #minetest-dev
20:10 sapier (bytes_read == 0 ) || ((bytes_written = fwrite(read_buffer, 1, bytes_read, targetfile)) != bytes_read) why to you wanna change it to == 0=
20:10 sapier ?
20:11 VanessaE joined #minetest-dev
20:11 Selat because bytes_read is unsigned and cannot be less than zero.
20:13 sapier hmm that's not a strange condition that's actually a bug
20:13 sapier case of error this code will never finish
20:14 xyz this was reported before btw
20:15 sapier well statements like "strange condition" is something completely different then "will never finish on error"
20:15 BrandonReese joined #minetest-dev
20:15 xyz yeah so it's safe to ignore them
20:16 sapier I didn't ignore it last time the report was about the bytes_written. whoever reported it didn't pinpoint at the bytes_read < 0 issue and I didn't see it by that time too
20:17 xyz I'm pretty sure there was a report about bytes_read
20:17 xyz http://irc.minetest.ru/minet​est-dev/2013-11-30#i_3464435
20:17 xyz http://irc.minetest.ru/minet​est-dev/2013-08-11#i_3255795
20:20 sapier well as you read I didn't realize 830 bug as I even wrote about 831 ... and was talking to shadow by that time
20:21 sapier and in second I wasn't involved ;-)
20:21 sapier I wonder why noone fixed this even multiple people (except me seemed to realize it)
20:23 xyz I guess it's because nobody can understand what this code does in timely fashion?
20:23 sapier what's hard to understand about checking if bytes written is same as bytes read before?
20:25 xyz dunno, but that's how I see it; there are no comments whatsoever
20:26 sapier ok I pushed the fix now
20:28 sapier as I'm about obvious but unseen/realized errors anything else left?
20:29 xyz obvious errors can be detected by clang static analyzer
20:31 sapier well clang right now shows more errors I can count ;-) I intended to fix those this weekend
20:33 xyz most of the warning are due to virtual functions being overloaded in a wrong way and class/struct mixed
20:33 Selat Maybe cppcheck is better for this purpose?
20:34 sapier both have pro and con
20:34 sapier in best case we compile -Wpedantic -Werror :-)
20:35 xyz using multiple different tools won't do any harm
20:35 xyz last time someone posted a clang static analyzer report to issue tracker it was ignored
20:36 xyz only one issue was fixed at the time
20:36 Selat I would be cool of each build set of most important warnings would be posted somewhere by buildbot.
20:36 sapier not exactly I did read it and put it on my todo list ... right after all the other work to be done ... I could've told you about it sorry for that
20:37 sapier imho our goal should be not have any warnings in there
20:37 sapier and wit not any I'm talking about gcc cland and in best case msvc too
20:38 xyz it was basically "fuck you, we're too smart for this shit"
20:38 xyz https://github.com/minetest/minetest/issues/808
20:40 sapier oops :-/ guess kwolekr somehow has chosen wrong words
20:43 sapier hmm I didn't check all of the issues by now but to me most of them seem to be valid errors (or at least valid without additional knowledge)
20:44 xyz some of them are fixed already
20:44 xyz like that case without breaks
20:44 xyz or division by zero in database migration script
20:44 xyz it also would be a nice idea to run mt with clang address sanitizer enabled
20:44 xyz that way it'll report to you whenever there's invalid memory access or similar
20:45 xyz so a bit like valgrind but performance decrease is much less (2x as advertised)
20:45 sapier I'll encourage everyone to do it. I can't promis all of the findings will be solved imediatly but they will be noticed and fixed
20:45 sapier yes memory sanitizer is reason why I recently installed clang. but I didn't have time to find out how to use it by now
20:46 sapier I hope clang will show things like u16value = someu32value too
20:46 xyz you just add -fsanitize=address to compile params
20:47 xyz freeminer has this by the way
20:47 xyz https://github.com/freeminer/freemine​r/blob/master/src/CMakeLists.txt#L610
20:48 sapier imho we should do a check for clang there
20:48 xyz i don't care
20:49 xyz sorry :(
20:49 sapier I know ... that's one of the things I don't like too much ;-)
20:59 sapier if there aren't concerns about this one I'm gonna push it in a few hours https://github.com/minetest/minetest/pull/1135
21:04 Gethiox joined #minetest-dev
21:13 emptty joined #minetest-dev
21:18 sapier sometimes I really wonder what crazy code compiles:
21:18 sapier https://github.com/minetest/minetest​/blob/master/src/clientobject.h#L58 vs
21:18 sapier https://github.com/minetest/minetest​/blob/master/src/activeobject.h#L64
21:21 CheapSeth joined #minetest-dev
21:55 farlepet joined #minetest-dev
21:58 sapier coredevs what do you think about enabling -Werror?
22:04 emptty sapier: I'm by no mean a coredev, but that's usually a good idea from my experience
22:07 sapier emptty :-) the one I was looking for some days :-)
22:08 emptty hello :)
22:11 zat joined #minetest-dev
22:11 sapier I can't reproduce the luajit issue
22:12 sapier I need more information about it ... something in your environment may cause it ... do you run mt at at a very very fast machine?
22:12 sapier luajit is broken till 2.0.0beta7
22:12 sapier but you said you've got 2.0.2 is this correct?
22:14 emptty sapier: pliz highlight me on every line tonight
22:14 emptty I've got a deadline for an article that must be written in 14 hours
22:15 sapier ok no need to discuss this now emptty do your work first
22:15 emptty I can answer any question you have, btu I wont (I shouldnt) lurk here if not asked
22:16 emptty I've libluajit version 2.0.2+dfsg-1
22:16 emptty my machine is fast, but not terribly fast
22:16 emptty the dfsg in the version number says that it was repacked for debian, probably to remove some non-free bits (such as DLL or such)
22:17 emptty sapier: the version of MT I'm using is the latest stable, not the git
22:17 salamanderrake joined #minetest-dev
22:19 Miner_48er joined #minetest-dev
22:59 EvergreenTree joined #minetest-dev
22:59 EvergreenTree joined #minetest-dev
23:15 zat joined #minetest-dev
23:17 hmmmm ah, sapier, I recall having problems compiling with clang because of that
23:17 hmmmm don't remember why I didn't fix it then.
23:20 sapier yes I'm having quite some trouble fixing it
23:21 sapier I managed to fix the warnings but now octaves are set to some quite crazy value
23:22 sapier is there missing a default value?
23:36 sapier well hmmmm getNoiseParams wont read octave as well as persistence ... no need to specify them in settings ;-)
23:37 hmmmm huh?
23:37 hmmmm why not
23:37 hmmmm hold on a minute
23:37 sapier #define getNoiseParams(x, y) getStruct((x), "f,f,v3,s32,s32,f", &(y), sizeof(y))
23:37 sapier not within the specified format
23:37 hmmmm erm
23:38 hmmmm offset, scale, spread factor, seed offset, octaves, persistance
23:38 hmmmm did I reverse the final two params on accident??
23:39 hmmmm hmmm looks fine to me sapier
23:39 sapier you're right it looks fine but result is bad
23:40 sapier but I can't really explain why (yet)
23:40 hmmmm btw I know that code looks whacked out but i did account for everything like alignment
23:40 sapier what I see in debugger is np are preinitialized fine and broken after this
23:40 hmmmm are you sure you're not overwriting memory
23:40 * ShadowNinja waves around https://github.com/minetest/minetest_game/pull/201 -- Added a caped player model
23:41 sapier no I'm not but getNoiseParams is the one doing the overwriting
23:42 sapier I wonder where those parameters are from, I don't have them in config
23:42 ShadowNinja ^ Been waiting a long time.  And as far as I can see there's no reason not to merge it.  Can someone else agree?
23:43 sapier I'm fine with this mod ShadowNinja
23:43 VanessaE put Stu's split limb model into it somehow and you've got my vote ;)
23:44 ShadowNinja Alright, I'll merge it.  Split limbs later.
23:47 sapier ok I now know whats happening
23:48 sapier ok wrong I don't
23:50 sapier it's somehow related to your removal of polymorphism ... I had to revert it on order to make clang not throw a warning about invalid overloading ... but obviously that causes issues in getNoiseParams
23:50 sapier because there a plain struct is required
23:51 sapier ok that seems to be a valid explanation ... can you follow my thoughts hmmmm?
23:52 EvergreenTree joined #minetest-dev
23:52 EvergreenTree joined #minetest-dev
23:56 hmmmm oh shiit
23:56 hmmmm don't tell me i made it non-pod
23:56 hmmmm because i just added a god damn constructor? really?
23:58 sapier no that's been me to fix clang using it correctly
23:58 hmmmm yeah btw
23:59 sapier hmm maybe I could fix this way more simple by using a static cast instead of dynamic ...
23:59 hmmmm structs that you get with getStruct needs to be POD or else something undefined happens
23:59 hmmmm i should've added a comment about that
23:59 sapier I just figured out this myself ;-)

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