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/viewtopic.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/textures/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/viewtopic.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/master/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/blob/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/minetest-dev/2013-11-30#i_3464435 |
20:17 |
xyz |
http://irc.minetest.ru/minetest-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/freeminer/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 ;-) |