Time |
Nick |
Message |
00:05 |
|
jin_xi joined #minetest-dev |
00:06 |
|
Void7 joined #minetest-dev |
01:00 |
|
MillersMan joined #minetest-dev |
01:43 |
|
Zeno` joined #minetest-dev |
02:03 |
|
yang2003 joined #minetest-dev |
02:18 |
Zeno` |
who's awake? |
02:19 |
Zeno` |
https://github.com/minetest/minetest/blob/master/src/threading/thread.h#L160 |
02:19 |
Zeno` |
I am changing that to #ifndef USE_CPP11_THREADS |
02:19 |
Zeno` |
will merge in 10 |
02:20 |
Zeno` |
http://dpaste.com/0PAR0KZ |
02:20 |
Zeno` |
hmmmm ^ |
02:21 |
hmmmm |
that's shadowninja's mistake, not mine |
02:23 |
Zeno` |
Not saying it was your mistake :) |
02:23 |
Zeno` |
Just.. I dunno. Doesn't need approval to merge 'cause it's trivial so I have no idea why I pinged you now |
02:24 |
hmmmm |
right, THAT is the kind of commit that shouldn't require peer review |
02:42 |
* sofar |
rubs eyes |
02:44 |
sofar |
I need someone else to test the mumble positional audio patch in a sec - I have a mumble server ready for it |
02:49 |
Wayward_One |
ShadowNinja: http://dev.minetest.net/Android should probably be updated now |
02:55 |
Wayward_One |
...or anyone else who knows what needs to be added, for that matter |
02:58 |
Zeno` |
Wayward_One, not much has changed :) |
02:59 |
Zeno` |
actually nothing has changed |
02:59 |
Zeno` |
http://dev.minetest.net/index.php?title=Android&action=history |
03:00 |
Wayward_One |
I mean since the latest change to gradle |
03:02 |
Zeno` |
oh, sorry |
03:03 |
Wayward_One |
No problem :) |
03:48 |
|
gregorycu joined #minetest-dev |
03:52 |
gregorycu |
This windows file shit is a mess |
03:56 |
Zeno` |
We could just drop Windows support |
03:56 |
Zeno` |
:) |
04:13 |
gregorycu |
ReplaceFile creates a temporary file, replaces temporary file with the old file, rename new to where old used to be, then deletes the temporary file |
04:14 |
gregorycu |
However, if foobar looks at the temporary file while it tries the second step, it fails |
04:14 |
gregorycu |
HOW FUCKING RETARDED IS THIS |
04:15 |
sofar |
system("del foo") ? |
04:17 |
gregorycu |
del foobar you mean? |
04:18 |
Zeno` |
or write your own implementation using tmpfile() |
04:18 |
gregorycu |
This feels like shit we should have to worry about |
04:18 |
Zeno` |
It does |
04:23 |
Zeno` |
I've removed the milestone because this bug has been around for a long long time |
04:24 |
Zeno` |
if it can be fixed in time it can, otherwise... I dunno |
04:24 |
Zeno` |
I wonder if it's also the cause of slow performance of single-player on Windows |
04:24 |
Zeno` |
(referring to kahrl's comment) |
04:25 |
gregorycu |
Is singleplayer slow on windows? |
04:25 |
Zeno` |
gregorycu, apparently |
04:25 |
Zeno` |
there is an open issue regarding it |
04:25 |
gregorycu |
# ? |
04:26 |
hmmmm |
is there a way to change a constructor into a macro without having to change any syntax? |
04:27 |
Zeno` |
gregorycu, #2145 |
04:27 |
ShadowBot |
https://github.com/minetest/minetest/issues/2145 -- Multi-second lag in default singleplayer game |
04:27 |
hmmmm |
AutoLock lock(m_mutex); <--- get __FILE__ and __LINE__ here, log time spent acquiring the lock in some global stats counter |
04:27 |
hmmmm |
I'm interested in how much contention there is |
04:28 |
Zeno` |
gregorycu, sorry; that's not Windows only |
04:28 |
gregorycu |
Can't you make AutoLock report how long it waited? |
04:28 |
hmmmm |
report where though |
04:30 |
gregorycu |
What platform are you on? |
04:30 |
hmmmm |
me?? why |
04:30 |
hmmmm |
this would be for windows |
04:30 |
gregorycu |
With visual studio, you can print information to the debug window |
04:31 |
hmmmm |
yes I know, it's DbgPrintEx or something |
04:31 |
hmmmm |
it'd be information overload |
04:31 |
hmmmm |
besides, you can't make any sense out of it unless you had the location of the lock |
04:32 |
gregorycu |
Ahh right, now I understand why you want a macro |
04:32 |
hmmmm |
not only would it be nice in general todo, but it'd help determine if anything like that could be the cause of slowness in singleplayer |
04:33 |
gregorycu |
Yeah |
04:33 |
hmmmm |
could be acquiring a global resource shared by two gamedefs that's the problem |
04:33 |
gregorycu |
There is a contention profiler in visual studio |
04:33 |
gregorycu |
Can't recall what version that was added |
04:34 |
hmmmm |
hmm I have 2013 ultimate on my work computer and it doesn't seem to have that |
04:36 |
gregorycu |
alt + F2 |
04:37 |
gregorycu |
What available tools does it list? It should be under Performance Wizard |
04:37 |
hmmmm |
ahhh |
04:37 |
hmmmm |
CPU Sampling, Instrumentation, .NET Memory allocation, and Resource Contention |
04:38 |
hmmmm |
i do have it |
04:38 |
gregorycu |
I don't know how to use it. |
04:39 |
gregorycu |
Just know it exists :) |
04:51 |
|
Megal joined #minetest-dev |
05:07 |
Zeno` |
==6666== the cost of reduced accuracy of conflicting-access information |
05:07 |
Zeno` |
==6666== ERROR SUMMARY: 20962 errors from 106 contexts (suppressed: 524553 from 248) |
05:08 |
gregorycu |
What is that? |
05:09 |
hmmmm |
two satanic verses |
05:09 |
Zeno` |
possible race conditions detected by joining an existing minimal singleplayer game and exiting |
05:10 |
Zeno` |
using helgrind |
05:10 |
gregorycu |
Indeed |
05:10 |
gregorycu |
I suppose we better just start again then |
05:13 |
Zeno` |
ok |
05:15 |
Zeno` |
lots in on::ReliablePacketBuffer::popSeqnum |
05:17 |
gregorycu |
With regards to our rename file woes, I'm thinking about calling the very low level winapi functions |
05:18 |
gregorycu |
Honestly, I'd rather think about pathfinding |
05:18 |
gregorycu |
That's how much I don't want to look at this |
05:24 |
gregorycu |
hmmmm: Do you have some contention results for us? |
05:27 |
Zeno` |
what's a good threshold for locks? |
05:27 |
Zeno` |
I mean max time |
05:27 |
Zeno` |
i.e. Lock on mutex 0x4221930 was held during 14 ms (threshold: 10 ms) |
05:28 |
Zeno` |
should I increase the 10ms? |
05:29 |
Zeno` |
I'll leave it actually because it kind of depends |
05:32 |
gregorycu |
huh? |
05:32 |
gregorycu |
What do you mean, max time? |
05:32 |
gregorycu |
Oh, for reporting purposes |
05:32 |
Zeno` |
yeah, for detecting/reporting |
05:32 |
Zeno` |
for locks that are held a long time |
05:33 |
gregorycu |
10ms is an eternity for the GUI thread, but nothing for the emerge thread |
05:33 |
gregorycu |
It depends |
05:33 |
Zeno` |
yeah, which is why I changed my mind about changing it :) |
05:33 |
Zeno` |
"I'll leave it actually because it kind of depends" <-- that's what I meant by that |
05:33 |
gregorycu |
Ahh right |
05:34 |
gregorycu |
I had a very quick look on resource contention |
05:34 |
gregorycu |
In the GUI thread, looks like the allocated contends a little on the GUI thread |
05:34 |
gregorycu |
Nothing compared to the rest of the app |
05:38 |
* Zeno` |
compiles without sound enabled |
05:40 |
gregorycu |
hmmmm,Zeno: I'm going to use MoveFileEx in a loop that attempts 5 times to move the file, with a 1ms sleep |
05:40 |
gregorycu |
Do we think this solution is ok? |
05:42 |
Zeno` |
no |
05:42 |
Zeno` |
because of kahrl's comment |
05:43 |
Zeno` |
that function is called once every 5 seconds |
05:43 |
gregorycu |
It won't add 5 ms |
05:43 |
hmmmm |
gregorycu: no I don't |
05:43 |
gregorycu |
Well, I'm out of ideas |
05:43 |
hmmmm |
what's this thing about MoveFileEx now? |
05:44 |
gregorycu |
We didn't use MoveFileEx because it can fail |
05:44 |
hmmmm |
is this for the ReplaceFile? |
05:44 |
gregorycu |
Yes |
05:44 |
hmmmm |
do you mean safeWriteToFile? |
05:45 |
hmmmm |
i don't see any function named ReplaceFile there |
05:45 |
gregorycu |
Yes |
05:47 |
hmmmm |
so what's the actual issue with the current implementation of safeWriteToFile? |
05:47 |
gregorycu |
It's complicated |
05:48 |
hmmmm |
that's it? |
05:49 |
gregorycu |
I've specified it in #4023 |
05:49 |
ShadowBot |
https://github.com/minetest/minetest/issues/4023 -- New unified favourites can disappear after game exit |
05:49 |
gregorycu |
When we remove the existing file, windows can defer the delete until later. This causes the rename to fail. |
05:49 |
gregorycu |
It's deferred because other applications, in this case foobar2000, have opened the file for a very brief period of time in order to query information on it |
05:50 |
gregorycu |
(Windows explorer would do the same thing if you had the parent folder open) |
05:50 |
gregorycu |
That was attempted to be fixed in two ways, but they all suffer from related problems |
05:51 |
hmmmm |
and remove() doesn't immediately fail but rather lies that it didn't fail? |
05:51 |
hmmmm |
and it fails later on |
05:51 |
gregorycu |
Well, remove succeeded |
05:51 |
gregorycu |
It marked the file as "to be deleted" |
05:51 |
gregorycu |
So, when the last handle of that file is gone, it will be deleted |
05:52 |
gregorycu |
Maybe it should return a different value, and not o |
05:52 |
gregorycu |
ok |
05:52 |
gregorycu |
(Maybe it can't tell it got deferred) |
05:53 |
gregorycu |
We should certainly move all file operations to their own thread, I would not argue against that |
05:53 |
gregorycu |
But the question is, what do we do in the short term |
05:53 |
gregorycu |
For me, the best answer is simple code that retries |
05:54 |
gregorycu |
The function is for disk IO, the caller should expect sometimes it may take a few ms |
05:54 |
gregorycu |
(Note, it will only take additional time in the case of failures) |
05:54 |
hmmmm |
yeah i agree, retrying a couple times is the simple answer |
05:54 |
hmmmm |
but I wonder if there's some way we can get a waitable object for the file's actual deletion |
05:56 |
gregorycu |
Well, we can query, but that isn't what you suggested. Not sure if a waitable object of this type exists |
05:57 |
Zeno` |
maybe there is no other simple option that can be done *right now* so maybe it is the best approach (for now) |
05:58 |
Zeno` |
I hate the "for now" for anything though |
05:58 |
gregorycu |
Well, if we were to do it properly |
05:58 |
gregorycu |
We wouldn't be trying to manage ACID ourselves |
05:58 |
gregorycu |
And instead rely on a database backend |
05:59 |
Zeno` |
why try 5 times? |
05:59 |
hmmmm |
so i don't get it |
05:59 |
hmmmm |
why must remove() and rename() be used at all? |
06:00 |
gregorycu |
On windows, rename will fail if the destination file already exists |
06:00 |
hmmmm |
what's wrong with exactly one MoveFileEx with MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH? |
06:00 |
gregorycu |
Oh |
06:00 |
gregorycu |
That will fail if some other process has the src filename open |
06:00 |
gregorycu |
Like Explorer.exe or SearchProtocolHost.exe |
06:01 |
gregorycu |
For Fixer, it was foobar.exe |
06:01 |
gregorycu |
foobar200.exe |
06:01 |
hmmmm |
i know what to do |
06:02 |
gregorycu |
Here we go |
06:02 |
hmmmm |
CreateFile with no read share attributes |
06:02 |
gregorycu |
Yeah, and we don't close the file |
06:02 |
gregorycu |
I agree |
06:02 |
hmmmm |
and DELETE_ON_CLOSE |
06:02 |
hmmmm |
err that's not the right constant name |
06:02 |
gregorycu |
Do you mean rename? |
06:03 |
gregorycu |
Open file, write to file, rename file, close file |
06:03 |
gregorycu |
Means we need to use low level winapi |
06:03 |
hmmmm |
FILE_FLAG_DELETE_ON_CLOSE |
06:03 |
gregorycu |
What does that do? |
06:03 |
hmmmm |
right ok |
06:03 |
gregorycu |
Well, I know what it does, but how does it help us |
06:04 |
hmmmm |
well actually i'm not entirely sure, it depends on whether CreateFile blocks or instantly fails when trying to open a file with a share mode of 0 |
06:04 |
hmmmm |
if it blocks, which is what i expect, then we're good |
06:06 |
hmmmm |
hmm |
06:06 |
|
jin_xi joined #minetest-dev |
06:06 |
gregorycu |
What do we want to do in the short term? |
06:06 |
hmmmm |
okay nevermind, it looks like it would fail with ERROR_SHARING_VIOLATION if something already has a handle on it |
06:06 |
hmmmm |
retry every couple MS |
06:06 |
Zeno` |
yeah |
06:06 |
Zeno` |
sounds yuck but there's no other option as you say, gregorycu |
06:07 |
gregorycu |
There are other options, but probably from calling low level winapi calls ourselves |
06:07 |
hmmmm |
we could create our own filesystem minifilter driver and do it that way |
06:07 |
Zeno` |
a friend told me he uses unlink and stat |
06:07 |
Zeno` |
but I know nothing about Windows programming |
06:07 |
hmmmm |
gregorycu, not possible |
06:07 |
gregorycu |
unlink == remove on windows |
06:07 |
hmmmm |
CreateFile is pretty much the same as NtCreateFile |
06:07 |
Zeno` |
_unlink ?? |
06:08 |
gregorycu |
Yeah |
06:08 |
Zeno` |
hmm |
06:08 |
hmmmm |
MoveFile and friends are basically variations of NtCreateFile |
06:08 |
gregorycu |
hmmmm: We can create the temp file, write everything to it, and then rename it and close it |
06:09 |
gregorycu |
The reason foobar/explorer/etc are hitting the file is because we close it |
06:09 |
gregorycu |
They open it about the same time we reopen it in order to move it |
06:09 |
gregorycu |
I think... |
06:09 |
gregorycu |
I think the reason foobar/explorer/etc are hitting the file is because we close it |
06:10 |
gregorycu |
Maybe they are hitting it when we create the file... |
06:10 |
gregorycu |
I don't know |
06:11 |
hmmmm |
either creating a file or deleting the file, probably both |
06:11 |
hmmmm |
they're using ReadDirectoryChangesW no doubt |
06:11 |
gregorycu |
Let's consider SQLite in the future |
06:11 |
hmmmm |
ha ha ha ha |
06:11 |
hmmmm |
oh you quack me up |
06:11 |
gregorycu |
Why? |
06:12 |
hmmmm |
quack. me. up. |
06:12 |
gregorycu |
If you want to enlighten me, now is the time |
06:13 |
hmmmm |
because sqlite databases are non-human-readable binary files |
06:13 |
gregorycu |
Yeah |
06:14 |
hmmmm |
besides, sqlite is a bit too hardcore of a solution for something as silly as a favorites list |
06:14 |
gregorycu |
Right, sorry |
06:14 |
hmmmm |
didn't realize you were being serious. |
06:14 |
gregorycu |
I was thinking about the world data |
06:14 |
gregorycu |
(Which uses the same function) |
06:14 |
hmmmm |
that's require a lot of rework for very little gain |
06:15 |
hmmmm |
just do the loop with sleep() |
06:16 |
gregorycu |
Always been a fan of that, in the short term |
06:17 |
Zeno` |
it won't make any difference if nothing has the file open anyway I guess |
06:17 |
gregorycu |
Yeah |
06:17 |
Zeno` |
and if somebody's antivirus opens a file every time it's modified maybe that's their problem? :D |
06:19 |
gregorycu |
Well, I think I've finished this, back to pathfinding :) |
06:21 |
gregorycu |
"when I played on that server it was pretty easy (within few hours) to catch lighting errors" |
06:21 |
gregorycu |
lol, within a few hours = easy |
06:24 |
Zeno` |
last release I was actually able to PLAY the game (with 5-12FPS) using valgrind |
06:24 |
Zeno` |
now I can't at all >:-/ |
06:25 |
gregorycu |
Too slow? |
06:25 |
Zeno` |
yeah maybe a frame every 10 seconds lol |
06:26 |
gregorycu |
:/ |
06:27 |
gregorycu |
I'm about to profile my own debug build cause I get 40 fps and it annoys me |
06:27 |
gregorycu |
Actually the server side part is way too slow |
06:27 |
gregorycu |
Nothing to do with fps |
06:28 |
Zeno` |
oh, running with valgrind is different but I still used to be able to play using it |
06:29 |
Zeno` |
I can't paste my data race log anywhere |
06:30 |
Zeno` |
it's too large |
06:30 |
Zeno` |
I'll do it with --first-race-only |
06:32 |
Zeno` |
drawtime=658 :) |
06:32 |
Zeno` |
900! |
06:34 |
Zeno` |
most of these seem to be connection related |
06:35 |
Zeno` |
in void ConnectionReceiveThread::receive() |
06:37 |
hmmmm |
freakin sapier |
06:37 |
hmmmm |
:) |
06:39 |
Zeno` |
I think it may have been changed since sapier... not sure |
06:39 |
* Zeno` |
looks |
06:43 |
Zeno` |
I might need some whiskey |
06:44 |
jin_xi |
gotta get that ballmer peak |
06:44 |
gregorycu |
Bit early isn't it |
06:46 |
Zeno` |
Lock on mutex 0xf74f848 was held during 3030 ms (RealInputHandler::setMousePos) lol |
06:47 |
Zeno` |
gregorycu, a bit... but it's 4:46PM so another hour maybe |
06:48 |
Zeno` |
I only have whiskey maybe once a year though so... August seems more reasonable |
06:58 |
|
Hunterz joined #minetest-dev |
07:04 |
|
Krock joined #minetest-dev |
07:25 |
hmmmm |
@paramat I updated my biomegen branch, check it out. |
07:32 |
Zeno` |
I love BioMegan! I subscribe to her yourtube channel |
07:39 |
hmmmm |
is she the biological counterpart to RobotMegean |
07:39 |
hmmmm |
weeeeeewwwwwwwwwwwwwweeeeeeeeeeeeeeeeeeeeeeeeeee |
07:39 |
hmmmm |
I HEART CODE DEDUPLICATION |
07:42 |
hmmmm |
[ryantitan] ~/dev/minetest% git diff --shortstat |
07:42 |
hmmmm |
6 files changed, 9 insertions(+), 319 deletions(-) |
07:48 |
Zeno` |
[Hodorhabanero minetest]$ git diff --shortstat |
07:48 |
Zeno` |
892 files changed, 342505 deletions(-) |
07:50 |
hmmmm |
you prolly just deleted everything |
07:51 |
Zeno` |
yes; nice and clean now |
07:52 |
gregorycu |
My new pathfinder appears to work on flat surfaces |
07:53 |
gregorycu |
Which makes me very happy |
07:53 |
hmmmm |
my pathfinder works on straight lines |
07:57 |
gregorycu |
Time to profile the thing |
08:09 |
Zeno` |
you're working on sofar's patch? |
08:10 |
gregorycu |
No, new pathfinder, cause the old one is broken |
08:11 |
Zeno` |
oh.. I thought somebody else was working on that. nvm :) |
08:11 |
gregorycu |
est31 made the old one... well, performant enough to us |
08:12 |
gregorycu |
use |
08:17 |
|
bugzapper joined #minetest-dev |
08:24 |
gregorycu |
If a node is walkable, does that mean you can stand ON it, or stand IN it? |
08:34 |
nore |
gregorycu: on |
08:34 |
gregorycu |
Thank you |
08:34 |
nore |
i.e. not walkable -> not solid |
08:51 |
gregorycu |
Yay. Pathfinder now support arbitrary dropping distances |
09:12 |
gregorycu |
And now arbitrary jumping distances |
09:12 |
gregorycu |
Err... jumping up that is |
09:19 |
gregorycu |
http://www.gregorycurrie.com/hooray.jpg |
09:26 |
|
numZero joined #minetest-dev |
09:55 |
|
rubenwardy joined #minetest-dev |
09:59 |
|
jin_xi joined #minetest-dev |
10:16 |
|
Fritigern joined #minetest-dev |
10:33 |
|
Fixer joined #minetest-dev |
10:33 |
Fixer |
stutters/jitter are not caused by foobar2000 |
10:35 |
gregorycu |
Who said they were? |
10:37 |
Fixer |
i was reading the logs and somebody asked IF it is the cause |
10:37 |
Fixer |
ah, that was hmm |
10:38 |
|
iangp joined #minetest-dev |
10:39 |
|
Amaz joined #minetest-dev |
10:45 |
|
MillersMan joined #minetest-dev |
10:50 |
|
paramat joined #minetest-dev |
10:52 |
gregorycu |
ahh ok |
10:56 |
|
rubenwardy joined #minetest-dev |
10:57 |
|
Lunatrius` joined #minetest-dev |
10:57 |
gregorycu |
Any comments, anyone #4049 |
10:57 |
ShadowBot |
https://github.com/minetest/minetest/issues/4049 -- Pathfinder: add support for non-surface path finding |
11:16 |
|
kahrl joined #minetest-dev |
11:16 |
paramat |
meh 5 pages of PRs were laballed as 'updated 9 hrs ago' for no reason. github keeps doing this, to issues too |
11:17 |
paramat |
(labelled) |
11:27 |
Zeno` |
kahrl, have you cleaned (and cmake cache also)? |
11:31 |
paramat |
anyone else agree to closing #3929 ? |
11:31 |
ShadowBot |
https://github.com/minetest/minetest/issues/3929 -- add a setting for exponential view distance adjustment by DS-Minetest |
11:32 |
paramat |
nore sfan5 ^ |
11:34 |
gregorycu |
So sad to reject work |
11:35 |
Krock |
gregorycu, make a minetest spin-off and merge it :P |
11:35 |
gregorycu |
Some how I think getting into gregtest won't satisfy the coder |
11:37 |
Zeno` |
oh I see the problem |
11:38 |
Zeno` |
that's seriously fubar |
11:39 |
paramat |
or perhaps i should hve written, any more opinions on it? |
11:40 |
Zeno` |
it's unfinished :/ |
11:41 |
Zeno` |
https://github.com/minetest/minetest/commit/46fd114e9a4e05b74576dce682e24357363298e7 should not have been merged |
11:42 |
Zeno` |
there is no way that can have been tested with C++11 threads |
11:42 |
paramat |
it helps for devs to state their opinions, so we can clear out unpopular PRs quicker. many hang around for years, unpopular but not enough -1s to close |
11:42 |
Zeno` |
because half the functions in thread.cpp still use stuff that it #ifdefs away |
11:50 |
|
louiloui joined #minetest-dev |
11:52 |
Zeno` |
paramat, is #4024 still an issue? |
11:52 |
ShadowBot |
https://github.com/minetest/minetest/issues/4024 -- Expiring particle spawners broken |
11:53 |
paramat |
erm |
11:53 |
Zeno` |
or did https://github.com/minetest/minetest/commit/6278da296be13c1229bfce45c476119a1db9477f address it? |
11:54 |
paramat |
yeah that issue was for the id bug specifically |
11:55 |
gregorycu |
sofar, give me sheep |
11:56 |
gregorycu |
I want to test with cool stuff with my pathfinder |
11:57 |
paramat |
ok closed |
11:59 |
|
turtleman joined #minetest-dev |
12:01 |
paramat |
freeze keeps receding over the horizon |
12:04 |
|
fkeloks joined #minetest-dev |
12:05 |
gregorycu |
I've done my work |
12:05 |
gregorycu |
What's left |
12:06 |
|
fkeloks joined #minetest-dev |
12:09 |
paramat |
nore sfan5 game#579 is old but now updated and could go in, any reviews? |
12:09 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/579 -- Add give_initial_stuff API (and a setting) by rubenwardy |
12:09 |
|
Megal joined #minetest-dev |
12:09 |
gregorycu |
Zeno`: Are you fixing the threading thing? |
12:10 |
sfan5 |
seems good |
12:10 |
gregorycu |
Do we do function overloading with our lua api? |
12:13 |
|
everamzah joined #minetest-dev |
12:19 |
Zeno` |
gregorycu, I'm not |
12:25 |
paramat |
ok |
12:25 |
Zeno` |
ok? |
12:25 |
gregorycu |
Cool, I'll take a look then |
12:25 |
paramat |
(to sfan sorry) |
12:26 |
Zeno` |
oh haha ;) |
12:26 |
* Zeno` |
will not mentioned use of unitialised variables in case it becomes a milestone |
12:27 |
MillersMan |
hi, small question from a newbie: i've read often about pathfinding the last days and i wonder (without looking to the code) what algorithm is used for pathfinding and what its current uses are? |
12:30 |
Zeno` |
I think 3 algorithms are supported but a lot has changed lately so I'm not sure |
12:30 |
Zeno` |
https://github.com/minetest/minetest/blob/master/src/pathfinder.h#L51 |
12:31 |
MillersMan |
Ok, thanks |
12:31 |
Zeno` |
gregorycu and est31 know more |
12:33 |
gregorycu |
MillersMan: We use a bad implementation of A* |
12:34 |
gregorycu |
I rewrote it in the last 24 hours, now it's proper A* using manhatten distance as the heuristic |
12:34 |
paramat |
i think i'll add a note in docs advising against using l-system until we get the lighting bug fixed #3421 |
12:34 |
ShadowBot |
https://github.com/minetest/minetest/issues/3421 -- Moretrees lighting bug: Mapgen 1 up 1 down overgeneration changes lighting behaviour |
12:35 |
|
paramat left #minetest-dev |
12:38 |
|
proller joined #minetest-dev |
12:55 |
|
rubenwardy joined #minetest-dev |
12:58 |
|
proller joined #minetest-dev |
13:05 |
|
damiel joined #minetest-dev |
13:05 |
|
Player_2 joined #minetest-dev |
13:11 |
gregorycu |
Zeno`: FYI, compiles cleanly on windows with C++11 threads |
13:11 |
gregorycu |
Found the issue though |
13:20 |
|
iangp joined #minetest-dev |
13:21 |
|
PilzAdam joined #minetest-dev |
13:26 |
gregorycu |
kahrl: Are you able to fix those build errors yourself? |
13:27 |
Zeno` |
gregorycu, how can it when, for example, bool Thread::setPriority(int prio) uses members that don't exist when USE_CPP11_THREADS is defined? |
13:28 |
gregorycu |
That would be the thing he fixes |
13:28 |
Zeno` |
you just said it built though *confused* |
13:28 |
gregorycu |
it builds on windows fine |
13:28 |
Zeno` |
oh on Windows... yeah that's different |
13:28 |
Zeno` |
soryr, missed that part :) |
13:29 |
gregorycu |
I can fluff around with it, but the real guarantee is if someone on non-windows can get it to work |
13:31 |
gregorycu |
Also, I have no idea how m_thread_handle isn't defined |
13:33 |
Zeno` |
because it's only defined if USE_CPP11_THREADS is not defined? |
13:33 |
Zeno` |
https://github.com/minetest/minetest/blob/master/src/threading/thread.h#L160 |
13:36 |
|
troller joined #minetest-dev |
13:37 |
|
proller joined #minetest-dev |
13:37 |
gregorycu |
My file doesn't match that |
13:37 |
Zeno` |
what's yours have? |
13:38 |
gregorycu |
When was this introduced? |
13:38 |
Zeno` |
when was what introduced? |
13:38 |
gregorycu |
The bug |
13:38 |
Zeno` |
There is a commit reference in the issue report |
13:39 |
Zeno` |
2 days ago by the looks of the commit history |
13:39 |
gregorycu |
8 Mar |
13:39 |
gregorycu |
oh |
13:39 |
Zeno` |
yeah, that's not when it was merged though :) |
13:39 |
gregorycu |
I'll get latest |
13:40 |
ShadowNinja |
Pushing this soon (fixes POSIX C++11 build): http://ix.io/yun |
13:42 |
gregorycu |
Would be good if github's issue page could somehow group issues and their PR |
13:43 |
gregorycu |
Shadow, when you push that, kahrl can push 4051 |
13:43 |
gregorycu |
So it's two for the price of one |
13:45 |
gregorycu |
We actually have a lot of issues and prs near complete for the milestone |
13:46 |
gregorycu |
lol @ #4058 |
13:46 |
ShadowBot |
https://github.com/minetest/minetest/issues/4058 -- Connecting walls, walls and connecting iron bars and glass panes. stairs blocking angle 90 degrees. |
13:47 |
ShadowNinja |
Oh, er, Zeno` already pushed something else that doesn't fix it: https://github.com/minetest/minetest/commit/ae75073944f6cdea22d5d4cc40b81937afe4dfa6 |
13:50 |
ShadowNinja |
Zeno`: It looks like your commit doesn't actually change anything about the function of that code. If the C++11 POSIX build started working then there's a bug, there isn't supposed to be an m_thread_handle in that build. |
13:54 |
ShadowNinja |
Zeno`: Does this patch set look fine?: http://ix.io/yuF/diff |
13:57 |
Zeno` |
ShadowNinja, it does change something because #if !BLAH is not valid :) |
13:57 |
Zeno` |
#if !defined USE_CPP11_THREADS would be.... |
13:58 |
sfan5 |
can you please put brackets around the defined? |
13:58 |
sfan5 |
it's like using sizeof foo |
13:58 |
sfan5 |
you can but you shouldn't |
13:58 |
Zeno` |
I use sizeof without brackets all the time :3 |
13:59 |
sfan5 |
https://lkml.org/lkml/2012/7/11/103 :3 |
13:59 |
Zeno` |
Anyway, ShadowNinja, I have never seen anyone use #if !BLAH |
13:59 |
Krock |
brackets look better to me |
14:00 |
|
DFeniks joined #minetest-dev |
14:00 |
Zeno` |
it's always #if !defined BLAH (or #ifndef) |
14:01 |
|
troller joined #minetest-dev |
14:01 |
Zeno` |
what do the brackets do in simple preprocessor directives though, sfan5? |
14:01 |
Zeno` |
in the case of #if I mean |
14:01 |
Zeno` |
not macro expansion |
14:02 |
sfan5 |
looks nicer |
14:02 |
Zeno` |
well if you say so... #if !defined (USE_CPP11_THREADS) |
14:02 |
Zeno` |
looks ugly to me, but *shrug* :) |
14:02 |
sfan5 |
s/d /d/ |
14:04 |
Zeno` |
err, yes |
14:06 |
Krock |
Zeno`, err what? Looks great |
14:11 |
Zeno` |
well, what looks good and doesn't it a matter of opinion |
14:12 |
Zeno` |
what works and what doesn't isn't :) |
14:13 |
Zeno` |
using #if !BLAH is just not "right" |
14:17 |
Zeno` |
ShadowNinja, also why did you remove the indents? |
14:18 |
Zeno` |
they're nested, they should be indented :/ |
14:27 |
nore |
~tell paramat game#579 looks good |
14:27 |
ShadowBot |
nore: O.K. |
14:30 |
|
proller joined #minetest-dev |
14:31 |
|
KaadmY joined #minetest-dev |
14:37 |
Wayward_One |
#4059 |
14:37 |
ShadowBot |
https://github.com/minetest/minetest/issues/4059 -- Add on_punchnode callback by Wayward1 |
14:51 |
|
STHGOM joined #minetest-dev |
14:52 |
|
STHGOM joined #minetest-dev |
14:55 |
nore |
Hm, I've got a question about client-side translations |
14:56 |
nore |
Should we use gettext format, or instead the intllib one, since some mods are already translated using it? |
15:19 |
|
troller joined #minetest-dev |
15:21 |
|
blaze joined #minetest-dev |
15:24 |
|
est31 joined #minetest-dev |
15:24 |
est31 |
nore, I'd prefer gettext format |
15:25 |
nore |
est31: ok, that will require extra work with gettext though |
15:25 |
est31 |
intllib is NIH imo |
15:26 |
est31 |
gettext has more tools |
15:26 |
nore |
as we can't really use gettext format in strings that will be sent |
15:26 |
est31 |
why not |
15:27 |
est31 |
we still need some method for legacy clients |
15:27 |
est31 |
so we can use whatever format we want |
15:27 |
nore |
i.e. these strings will have to look sensible if unescaped |
15:27 |
est31 |
well yeah |
15:27 |
est31 |
we can just simply bump the protocol version |
15:27 |
est31 |
then we know on the server side which clients to send which version |
15:27 |
nore |
yes, I will need that of course |
15:27 |
est31 |
old or new |
15:28 |
nore |
But the problem is with strings in metadata, for example |
15:29 |
est31 |
whats the problem with that |
15:29 |
nore |
the idea was: to translate a string, add \x1bT at the beginning, and \x1bR at the end |
15:30 |
est31 |
yeah |
15:30 |
est31 |
we probably need some way to pass the gettext params as well |
15:31 |
nore |
I thought about it as well |
15:31 |
est31 |
but that's it |
15:31 |
est31 |
Add some \x1bG or something |
15:31 |
nore |
\x1b(A<number>) at the beginning |
15:32 |
est31 |
so the end text will be something like \x1bTFurnace (\1% burned)\x1bG90\x1bR |
15:32 |
nore |
And \x1b(B<number>) at the end |
15:32 |
nore |
So, an old client will see no difference |
15:33 |
nore |
And a new one will know the parameters to give to gettext/other |
15:33 |
est31 |
yeah |
15:33 |
est31 |
what do you mean with A and B |
15:34 |
nore |
A furnace would thus be: \x1bTFurnace (\x1b(A1)90\x1b(B1)% burned)\x1bR |
15:35 |
nore |
A marks the start of an argument |
15:35 |
nore |
B the end |
15:35 |
est31 |
that's lots of overhead |
15:35 |
nore |
That was, arguments can even be nested, translated, and old clients will see the English version |
15:35 |
nore |
That's not a lot of overhead |
15:36 |
nore |
Just a few characters |
15:36 |
est31 |
10 for your method, 3 for mine |
15:36 |
Zeno` |
ShadowNinja, are you awake? |
15:36 |
nore |
And a lot less overhead than doing all the translations in a single string |
15:37 |
est31 |
thats true |
15:37 |
nore |
est31: yes, but yours is not compatible with old clients |
15:37 |
est31 |
better to send the translation tables to the client separately |
15:37 |
est31 |
what old clients |
15:37 |
nore |
Clients that will not have the translations integrated |
15:38 |
nore |
Just the string escape mechanism |
15:38 |
est31 |
you mean 0.4.14, right? |
15:38 |
nore |
Yes |
15:38 |
est31 |
well we still can edit 0.4.14 |
15:38 |
est31 |
but of course only if you want it |
15:38 |
nore |
With your version, 0.4.14 clients will see \1, and a 90 at the end |
15:39 |
est31 |
i just think that its much more compact, and therefore better |
15:39 |
nore |
Well, we could, but I think we shouldn't add special cases for escape sequences |
15:40 |
nore |
I.e. the current way of unescaping strings should always give correct results |
15:41 |
est31 |
right now its not too late to change the "current" way |
15:41 |
|
proller joined #minetest-dev |
15:41 |
nore |
It's not, however we are on freeze though |
15:41 |
nore |
s/on/in/ |
15:42 |
est31 |
are we |
15:42 |
est31 |
well then we gonna waste space |
15:43 |
nore |
Only bugfixes and release-critical features should be merged I think |
15:43 |
nore |
is that space that important? |
15:43 |
est31 |
yes |
15:43 |
nore |
Plus, it is only with strings that have arguments |
15:43 |
est31 |
it gets stored into metadata |
15:43 |
nore |
And there are very few of them |
15:45 |
nore |
Well, we could optimize common cases for the first or second argument |
15:45 |
nore |
That saves a few more bytes |
15:45 |
est31 |
hrmm |
15:46 |
nore |
But still, me' |
15:46 |
est31 |
as I read it we can make it much shorter with the current unescaping |
15:46 |
nore |
Grr |
15:46 |
nore |
metadata is not that big |
15:47 |
nore |
est31: while keeping compatibility with old clients? |
15:47 |
est31 |
Instead of \x1b(A1) we just do \x1bP and instead of \x1b(B1) we do \x1bQ |
15:47 |
est31 |
So the furnace example becomes \x1bTFurnace (\x1bP90\x1bQ% burned)\x1bR |
15:47 |
est31 |
thats 4 characters |
15:48 |
nore |
Indeed |
15:48 |
est31 |
acceptable :) |
15:48 |
nore |
(Well, 8 actually :)) |
15:48 |
nore |
I'll start coding that soon then |
15:49 |
est31 |
okay |
15:49 |
nore |
Remaining question is: how do we handle gettext? |
15:49 |
nore |
gettext is not easy |
15:50 |
sfan5 |
why are we discussing this now |
15:50 |
nore |
sfan5: because I'd like to start working on it |
15:51 |
nore |
(Well, for after 0.4.14, but since it is almost ready except a few things, I don't have things to work on for it) |
15:53 |
est31 |
nore, well gettext is a big library that handles everything for us |
15:54 |
est31 |
but on the other hand of course, gettext wasn't really designed for our use case |
15:54 |
est31 |
and getting it built on android isnt possible :) |
15:54 |
nore |
You mean, we haven't Android translations? |
15:55 |
est31 |
no :) |
15:55 |
nore |
Just because gettext doesn't work there? |
15:55 |
est31 |
yes :) |
15:55 |
nore |
Then gettext is a no-go :) |
15:55 |
sfan5 |
there surely is a gettext replacement for android |
15:55 |
sfan5 |
we already have gettext and won't be throwing it away |
15:55 |
sfan5 |
also we could just use any other library and "emulate" the gettext api |
15:56 |
nore |
Something more difficult to code and that doesn't work everywhere is worse |
15:56 |
nore |
sfan5: yes, that would be good for C++ strings |
15:56 |
|
paramat joined #minetest-dev |
15:57 |
nore |
But if we have working content strings, that's already half of the work done :) |
15:58 |
paramat |
we're not in strict freeze yet, but only essential or simple harmless things are being merged now |
15:58 |
est31 |
they can be converted |
15:58 |
nore |
paramat: ok |
15:59 |
est31 |
paramat, lets do a strict freeze. I have thought that 0.4.14 would be completely done well before may starts (as a joke! I never thought we would get close) and now we have apr. 30 and the freeze hasnt even started yet |
16:00 |
paramat |
well in a way we are sort of frozen because the remaining PRs are bugfixes |
16:01 |
|
troller joined #minetest-dev |
16:01 |
paramat |
it's sort of a grey area, but as a date helps we can say end of sunday? |
16:02 |
paramat |
#4037 is more of a bugfix than feature? |
16:02 |
ShadowBot |
https://github.com/minetest/minetest/issues/4037 -- Pathfinder cleanup by est31 |
16:03 |
est31 |
its a mix of bugfix, cleanup and speedup |
16:04 |
paramat |
we have issue milestones but these don't delay freeze |
16:05 |
paramat |
in game only TNT stuff remains, which is bugfix/cleanup |
16:05 |
paramat |
heh problem is i'm too philosophical about freeze |
16:06 |
paramat |
*** freeze is end of sunday then *** |
16:06 |
|
troller joined #minetest-dev |
16:07 |
paramat |
having a date seems to wake people up i've noticed |
16:08 |
est31 |
well if the pathfinder fix doesnt go in its not such a big problem |
16:09 |
est31 |
but still would be great to have it reviewed |
16:09 |
est31 |
sfan5, nore if you have time can you have a look at #4037 |
16:09 |
ShadowBot |
https://github.com/minetest/minetest/issues/4037 -- Pathfinder cleanup by est31 |
16:14 |
nore |
est31: doing that |
16:14 |
|
iangp joined #minetest-dev |
16:19 |
|
turtleman joined #minetest-dev |
16:20 |
nore |
est31: code looks reasonable, but I can't test anything |
16:20 |
|
crazyR joined #minetest-dev |
16:22 |
nore |
Also, does it fix the issue gregorycu said, that pathfinder is depth-first instead of breadth-first? |
16:23 |
est31 |
no, it doesnt touch the pathfinder itself |
16:23 |
est31 |
it however improves the initial array storage |
16:23 |
est31 |
and removes it for larger distances |
16:23 |
nore |
Ok, code looks good anyway |
16:24 |
nore |
But as I said, I can't test anything |
16:24 |
est31 |
I mean if you had search distance of 100 nodes, it has allocated an array of 100*100*100 = 1.000.000 nodes |
16:24 |
est31 |
that doesn't scale well |
16:24 |
nore |
Indeed |
16:26 |
est31 |
Okay, now i gotta go. |
16:26 |
est31 |
I'll try to fix the thing hmmm pointed out with the braces |
16:26 |
est31 |
after i came back |
16:27 |
est31 |
nore, do you +1? |
16:27 |
est31 |
(the PR) |
16:28 |
nore |
est31: I'll read it a bit more if it is to be merged before 0.4.14 |
16:28 |
nore |
But else, +1 indeed |
16:28 |
est31 |
ok |
16:32 |
|
Krock joined #minetest-dev |
16:33 |
|
hmmmm joined #minetest-dev |
16:34 |
|
lisac joined #minetest-dev |
16:37 |
paramat |
O/ hmmmm added line comment to your branch |
16:54 |
|
Megal joined #minetest-dev |
17:03 |
|
asl97 joined #minetest-dev |
17:06 |
nore |
~tell est31 I just finished precisely reading the commits, they look good; I also have a suggestion, that would be to make another container that would be a mix of array and map (let's say, a map containing 4*4*4 arrays), to try to be a bit more efficient (especially with memory usage) and with a bit more cache locality; but it is of course but a suggestion ;) |
17:06 |
ShadowBot |
nore: O.K. |
17:06 |
nore |
paramat: commits look good, I +1 the pr |
17:07 |
paramat |
ok great |
17:07 |
nore |
~tell est31 of course, this can be done in another pr, or not at all if you think it is a bad idea |
17:07 |
ShadowBot |
nore: O.K. |
17:09 |
|
proller joined #minetest-dev |
17:12 |
nore |
paramat: are there any PRs I should check? |
17:13 |
paramat |
erm .. |
17:13 |
|
ElectronLibre joined #minetest-dev |
17:16 |
paramat |
can't think of anything specific, but any input on the milestone PRs is welcome |
17:16 |
nore |
Ok, will try to look a bit then |
17:16 |
nore |
Are there any in _game? |
17:18 |
hmmmm |
heh |
17:18 |
hmmmm |
that's a good way to make the biome generate loop cleaner, separating the conditions out into their own boolean variables |
17:19 |
hmmmm |
however we'd be sacrificing efficiency since there wouldn't be any short circuiting |
17:21 |
nore |
hmmmm: depending on how you code it, the compiler might do that for you |
17:21 |
hmmmm |
it's always possible |
17:22 |
hmmmm |
if i've learned one thing though, it's that you can't trust a compiler to make the optimizations you want |
17:22 |
hmmmm |
i remmeber one time i tried to make the compiler combine an implicit strcpy and strlen into the same operation and no matter what flags i used nothing worked |
17:22 |
paramat |
nore i'll look through all game PRs and let you know |
17:23 |
hmmmm |
s/implicit/intrinsic/ |
17:26 |
paramat |
nore game#1060 |
17:26 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/1060 -- TNT: Fix multiple explosions erasing drops by sofar |
17:26 |
paramat |
1st commit is trivial, opinions on 2nd commit would be useful |
17:32 |
|
proller joined #minetest-dev |
17:33 |
lisac |
Hello nore. |
17:33 |
nore |
Hi lisac |
17:34 |
lisac |
I wanted to ask how is your colored descriptions code going? |
17:35 |
nore |
Haven't touched it for a week or two, but I'll work on it again soon |
17:35 |
lisac |
Ok, thanks :D Can I help you? I know a bit of C++. |
17:37 |
nore |
Hm, I don't think I will need help, actually what remains to be done is mostly to clean the code (a lot) |
17:37 |
lisac |
Ok. Ask me if you change your mind :P |
17:38 |
|
ElectronLibre joined #minetest-dev |
17:39 |
hmmmm |
well |
17:40 |
hmmmm |
clang does the optimization, ironically icc does not |
17:40 |
hmmmm |
gasp i thought icc was supposed to be the best compiler ever |
17:42 |
Calinou |
I¢¢ |
17:43 |
hmmmm |
gcc 5.x and higher produces the cleanest code, and it even re-orders the comparisons in order of calculated probability |
17:43 |
Calinou |
try GCC 6 :D |
17:43 |
Calinou |
I heard it's faster and such |
17:43 |
Calinou |
Fedora 24 will have it |
17:43 |
hmmmm |
how it figures that "foobar % 2 == 1" has a 78% chance of succeeding... no idea. |
17:46 |
hmmmm |
6 is the same output for this scenario |
17:55 |
Krock |
(foobar & 1) would be faster, right? |
18:07 |
|
crazyR_ joined #minetest-dev |
18:10 |
hmmmm |
Krock, it honestly depends on the type of foobar |
18:10 |
hmmmm |
if signed, then yes |
18:10 |
hmmmm |
if unsigned, it does the obvious optimization to & 1 |
18:10 |
Krock |
should be valid for unsigned too |
18:11 |
Krock |
ah |
18:12 |
|
crazyR__ joined #minetest-dev |
18:19 |
|
crazyR joined #minetest-dev |
18:22 |
|
lisac joined #minetest-dev |
18:24 |
|
crazyR_ joined #minetest-dev |
18:28 |
|
crazyR joined #minetest-dev |
18:28 |
|
blaze joined #minetest-dev |
18:32 |
|
crazyR_ joined #minetest-dev |
18:37 |
|
crazyR joined #minetest-dev |
18:41 |
|
crazyR_ joined #minetest-dev |
18:44 |
|
crazyR joined #minetest-dev |
18:48 |
|
crazyR_ joined #minetest-dev |
18:54 |
|
crazyR joined #minetest-dev |
18:58 |
|
crazyR_ joined #minetest-dev |
18:59 |
sofar |
I'll have minetest compiled with gcc6 on monday |
19:02 |
|
crazyR joined #minetest-dev |
19:06 |
|
jin_xi joined #minetest-dev |
19:13 |
|
troller joined #minetest-dev |
19:14 |
sofar |
paramat: at what point are we just going to consider the revised xpanes for 0.4.14? |
19:16 |
paramat |
erm |
19:17 |
nore |
There are a lot of PRs that I would like to be considered for merging right after 0.4.14, both in _game and engine |
19:18 |
paramat |
maybe it's safer for this PR to wait, as we freeze tomorrow night |
19:18 |
nore |
I suggest either adding a label for that, or merging in a separate dev branch |
19:18 |
nore |
Thoughts? |
19:19 |
paramat |
well there's a 0.4.15 milestone |
19:19 |
paramat |
i've been using it for things to work on right after release |
19:20 |
paramat |
like farmap |
19:20 |
paramat |
yeah i think xpanes should wait, unfortunately |
19:21 |
nore |
paramat: then could you add: nodetimer performance improvement, xpanes, nodetimer trees and farming |
19:22 |
paramat |
ok |
19:24 |
|
ElectronLibre joined #minetest-dev |
19:28 |
nore |
sofar: paramat: game#1060 and game#1061 both look good, however I don't know whether tnt should destroy items or not |
19:28 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/1060 -- TNT: Fix multiple explosions erasing drops by sofar |
19:28 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/1061 -- TNT: Combine adjacent TNT into the explosion by sofar |
19:28 |
paramat |
ok |
19:29 |
sofar |
ok, fair enough, if we're finally going into freeze |
19:29 |
nore |
I thought destroying them was a good idea, and 1061 fixes most of the problems with that |
19:29 |
sofar |
nore: there's a mechanic for destroying more items |
19:29 |
sofar |
I'm actually thinking we should just destroy 30% of is_ground_content by default |
19:29 |
paramat |
my thinking is, since the first explosion doesn't destroy drops from chests etc, the second explosion shouldn't either, so i agree with the PR |
19:30 |
sofar |
yeah I left it out as an open for now, keeping current behavior |
19:30 |
nore |
sofar: I would also have liked to get them in 0.4.14, but freeze should not be delayed any longer |
19:30 |
sofar |
agreed, lets go to 0.4.15 |
19:30 |
nore |
So that's why I suggest adding them in the merge-right-after-release list |
19:31 |
paramat |
1061 is needed though |
19:31 |
sofar |
both the tnt ones are needed I think |
19:32 |
paramat |
yes |
19:32 |
sofar |
if you merge one, the other needs rebasing |
19:32 |
sofar |
so let me know if you do |
19:32 |
paramat |
how about merging first commit of 1060 nore ? |
19:33 |
|
troller joined #minetest-dev |
19:33 |
sofar |
well, as it stands mobs redo is broken until both parts of 1060 are merged |
19:33 |
nore |
paramat: both can go in 0.4.14 |
19:34 |
paramat |
hm just reading that yeah |
19:34 |
nore |
just, not xpanes as it is more of a rework than a bugfix |
19:34 |
sofar |
xpanes is a makeover, yes |
19:34 |
paramat |
+1 for game 1060 |
19:35 |
nore |
So, let's merge 1060 and 1061 |
19:35 |
paramat |
can i merge 1060 now to speed up 1061? |
19:35 |
sofar |
yeah, merge 1060 so I can rebase 1061 |
19:36 |
paramat |
ok will do |
19:36 |
nore |
paramat: both are fine with me |
19:36 |
paramat |
ok |
19:39 |
paramat |
i'll also merge game#579 |
19:39 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/579 -- Add give_initial_stuff API (and a setting) by rubenwardy |
19:39 |
nore |
Fine for me |
19:40 |
paramat |
merging |
19:40 |
nore |
Wow, no more game milestones |
19:41 |
nore |
Have lbm been fixed though? |
19:41 |
sofar |
it was never broken |
19:41 |
sofar |
map importing issue :/ |
19:42 |
nore |
Ah? |
19:42 |
sofar |
if you start with an imported map, mapgen still runs, and lbms then think that the blocks are newer than the lbm time |
19:42 |
sofar |
we need to figure out how to tell mcimport to mark the blocks as post-mapgen |
19:43 |
sofar |
any ideas? I mostly focussed on content for mcimport |
19:44 |
nore |
sofar: yep, just add a setting of chunk_size to 1 |
19:44 |
sofar |
frankly, I still want to fix the flipped NS problem in mcimport |
19:44 |
paramat |
they conflict in game_api.txt, will merge 1060 only |
19:44 |
|
VargaD joined #minetest-dev |
19:45 |
sofar |
told you :) |
19:45 |
nore |
Or, fill incomplete chunks with air |
19:45 |
sofar |
oh, give_initial_stuff conflicts? |
19:45 |
nore |
About the flipped NS: do we have a solution? |
19:45 |
|
est31 joined #minetest-dev |
19:46 |
paramat |
merging 1060 |
19:46 |
sofar |
completely remap the coord system |
19:46 |
nore |
Problem for me os that MT and MC have different orientations |
19:46 |
sofar |
actually the map is rotated by 180 |
19:46 |
|
Calinou joined #minetest-dev |
19:46 |
nore |
There already is code that remaps coords |
19:46 |
sofar |
the code remaps one axis already |
19:46 |
nore |
Ah, it is that |
19:46 |
sofar |
but it shoudl remap the other axis |
19:46 |
sofar |
then it would be OK, I think |
19:47 |
nore |
so, I guess I inverted the wrong axis then |
19:47 |
sofar |
there was a format change in MC |
19:47 |
est31 |
having y == up is something unusual |
19:47 |
nore |
Though, how can you be sure it is that? |
19:47 |
est31 |
usually z is up |
19:47 |
sofar |
so likely you did it right before |
19:47 |
nore |
Oh, when was that change? |
19:48 |
sofar |
1.6 or 1.7? something like that |
19:48 |
nore |
I thought I coded it after that |
19:48 |
est31 |
sofar, you mean the anvil thing? |
19:48 |
sofar |
est31: yeah |
19:48 |
sofar |
it had all the map builders upset :) |
19:49 |
nore |
sofar: mcimport is post-anvil |
19:49 |
sofar |
shrug |
19:49 |
nore |
You need to use MC to convert older maps |
19:49 |
sofar |
I don't care about old maps |
19:49 |
nore |
Anyway, I fixed what I could |
19:50 |
nore |
I.e. I flipped a coordinate so the map wouldn't be flipped |
19:50 |
nore |
But it can have a 180 degree rotation |
19:51 |
paramat |
merged! sorry rubenwardy this has priority |
19:52 |
nore |
paramat: a game_api conflict should be trivially fixable |
19:55 |
|
troller joined #minetest-dev |
19:55 |
nore |
sofar: you've just got to change this function and the following one: https://github.com/sofar/mcimport/blob/master/block.py#L116 |
19:55 |
nore |
Beware that it is probably among mcimport's bottlenecks |
19:57 |
paramat |
+1 for game 1061 |
19:58 |
paramat |
don't feel strongly enough about my issue to delay stuff |
19:59 |
nore |
sofar: btw, did you ever try running mcimport in pypy? If it works, it should give a good performance speedup |
19:59 |
sofar |
eventually I want to parallellize it |
20:00 |
sofar |
couldn't get it to work in pypy |
20:00 |
sofar |
but, I'm a python n00b |
20:00 |
sfan5 |
your variable naming is horrible, sofar |
20:01 |
sfan5 |
l3 should be named "out" |
20:01 |
sfan5 |
l2 should be named "segment" or "cut" or "block" or something like that |
20:01 |
sfan5 |
or even "tmp" |
20:01 |
sfan5 |
but not l2 |
20:01 |
sofar |
sfan5: yeah, I'm bad at naming :) |
20:01 |
sofar |
what code is that? lol |
20:01 |
sfan5 |
also wtf is a locSt |
20:01 |
sfan5 |
it should be offset or index |
20:02 |
sofar |
sfan5: is that mcimport? |
20:02 |
sfan5 |
yes |
20:02 |
sofar |
sfan5: lol, you realize that I didn't write most of it, right? |
20:02 |
nore |
sfan5: it's my code actually |
20:02 |
sfan5 |
the comments in the function talks about minetest |
20:03 |
nore |
But code I wrote too long ago |
20:03 |
nore |
I really should rewrite that, and in C++ too (mcimport is way too slow) |
20:04 |
nore |
ShadowNinja made an NBT reader some timer ago in C++, it could be used as the base |
20:04 |
sofar |
given how long it took to convert that 25km^2 MiddleEarth map (5 days), it could use a c++ converter :D |
20:04 |
nore |
sofar: that's long indeed |
20:05 |
|
Void7 joined #minetest-dev |
20:05 |
nore |
Anyway, going to sleep now |
20:05 |
paramat |
bbl i can merge 1061 when rebased |
20:05 |
|
paramat left #minetest-dev |
20:05 |
sofar |
and 11 of my cores were pissed about being neglected :D |
20:06 |
nore |
sofar: parallelism could be useful too |
20:07 |
nore |
But it's hard to do: / |
20:07 |
nore |
**** phone autocorrect that breaks my smileys |
20:07 |
Fixer |
have you guys seen smth like that? https://i.imgur.com/FowxfZI.png |
20:07 |
nore |
Anyway, bbl |
20:07 |
Fixer |
noticed this just now on "No rules" server |
20:07 |
est31 |
phone autocorrect is arch enemy of mankind |
20:07 |
Fixer |
you can login to see for yourself |
20:07 |
est31 |
its invented to punish us |
20:11 |
Fixer |
https://i.imgur.com/77xkyGh.png hmm |
20:13 |
sofar |
dry grass plants on normal grass? |
20:13 |
sofar |
torches mod? |
20:13 |
Fixer |
don't see any torches |
20:13 |
Fixer |
just light : |
20:13 |
Fixer |
is this some kind of bug? :/ |
20:13 |
sofar |
but, does that have the torches mod? |
20:13 |
sofar |
type /mods |
20:14 |
|
troller joined #minetest-dev |
20:14 |
Fixer |
sofar, https://i.imgur.com/hRkoc93.png |
20:14 |
sofar |
hmm |
20:15 |
sofar |
no torches, but it's also not vanilla |
20:16 |
Fixer |
!tell paramat something interesting for you, found this on "No rules" server / 15e1dcc / light spots at night, no torches, no lava: https://i.imgur.com/77xkyGh.png https://i.imgur.com/FowxfZI.png https://i.imgur.com/hRkoc93.png |
20:16 |
ShadowBot |
Fixer: O.K. |
20:19 |
est31 |
"Your branch is ahead of 'origin/master' by 41 commits." |
20:19 |
est31 |
hmm seems its time again to spam the git log with translations |
20:19 |
sofar |
that's like the worst insult that git could give you |
20:19 |
sofar |
"nobody wants your prs" |
20:19 |
est31 |
heh |
20:19 |
sofar |
"have fun merging that!" |
20:21 |
Fixer |
https://i.imgur.com/sx4WCGM.png |
20:21 |
Fixer |
slight shadow, hmm |
20:21 |
Fixer |
madness |
20:24 |
Fixer |
https://i.imgur.com/iy40wjK.png |
20:26 |
Fixer |
!tell paramat interesting -> https://i.imgur.com/zYLhS3Z.png |
20:26 |
ShadowBot |
Fixer: Error: Spurious ">". You may want to quote your arguments with double quotes in order to prevent extra brackets from being evaluated as nested commands. |
20:32 |
Fixer |
i guess mt needs not only water reactivation but light too :S |
20:35 |
est31 |
nore, with your approval, can I merge? |
20:36 |
est31 |
talking bout #4037 |
20:36 |
ShadowBot |
https://github.com/minetest/minetest/issues/4037 -- Pathfinder cleanup by est31 |
20:47 |
Fixer |
https://i.imgur.com/dyASozF.jpg |
20:47 |
Fixer |
TNT was thrown away behind me, this is the result ^^ |
20:50 |
sofar |
set off another tnt in that area |
20:50 |
Fixer |
the problem is, i'm not sure where exactly it exploded |
20:50 |
|
Player-2 joined #minetest-dev |
20:50 |
Fixer |
will place a torch first |
20:51 |
Fixer |
https://i.imgur.com/RARORgO.jpg after torch |
20:52 |
Fixer |
sofar, TNT fixed it entirely :/ |
20:52 |
Fixer |
this madness should stop |
20:53 |
MillersMan |
Offtopic question: Is there any replacement for finite-water/waterplus? A mod or experimental engine branch/fork? |
20:54 |
MillersMan |
I'm currently thinking about implementing an experimental water-flowing simulation in the engine for two reasons: 1. I want this to be implemented and 2. It allows me to learn the engine code outside of mapgens |
20:56 |
est31 |
MillersMan, implementing that is a big goal. you might want to talk with hmmmm about it |
20:57 |
est31 |
he knows about that part of minetest |
20:57 |
MillersMan |
est31: thanks |
20:58 |
MillersMan |
and nice to hear that this is already on the list |
20:59 |
est31 |
errm sorry ive said it wrongly |
20:59 |
est31 |
with "big goal" i meant to say that it was hard |
20:59 |
est31 |
not that it is particularly on the agenda |
21:00 |
|
Lunatrius joined #minetest-dev |
21:00 |
MillersMan |
ah, ok |
21:04 |
PilzAdam |
MillersMan, could you implement it in a way that allows mods to define which liquid flowing type a node should use? |
21:05 |
PilzAdam |
a big problem with the old finite liquids was that you could only set it for all liquids |
21:05 |
Fixer |
mt needs help on ordinary water too |
21:07 |
MillersMan |
Not sure, I think it should be possible but I'm still to inexperienced with the code-base, one of the reasons why I want to do something new... bugfixing is just to hard if you don't know the details |
21:08 |
MillersMan |
My idea was to cache the fluid state on per block base maybe even with multiple levels of details... Its just important to preserve the amount of water and to do nothing unexpected but I don't think it will be critical to always keep the simulation at highest update rate |
21:10 |
MillersMan |
Another part of the plan was to evaluate a whole water-column at once, so it that not each node has to be updated on its own, and to join multiple columns for a lower-ress simulation if there aren't any changes ongoing. |
21:11 |
MillersMan |
The difficult part would be to update this cache in real-time and to respond to changes near the columns |
21:11 |
Fixer |
and this water reactivation bug-part |
21:12 |
MillersMan |
Not sure if it will work, and its probably nothing that will be ready of the main-game in near future |
21:12 |
MillersMan |
Fixer, what is the water reactivation issue? Maybe I can take a look at it |
21:13 |
Fixer |
MillersMan, infamous one, let me search for it |
21:14 |
jin_xi |
hey i am looking at a very similar problem of caching/updating block data, but for collision detection |
21:15 |
Fixer |
MillersMan, bug is like that: place water source... it will go down obviously, now fly away some more, go back, water gets stuck, there are also flowing water flying alone stuck in air :) |
21:16 |
Fixer |
MillersMan, and problem is too fix it and make it flow |
21:16 |
Fixer |
reflow |
21:16 |
Fixer |
MillersMan, https://github.com/minetest/minetest/pull/2977 and https://github.com/minetest/minetest/pull/3581 |
21:18 |
MillersMan |
Ok, already observed this one when trying to play a little in my mapgen, had bug in the mapgen that caused an unwanted waterfall and that was then stuck in midair |
21:18 |
sofar |
est31: did you drop my walkable patch from the pathfinder_cleanup pr? |
21:18 |
Fixer |
MillersMan, my example of stuck liquids: https://cloud.githubusercontent.com/assets/16494741/12523512/05ed0a54-c160-11e5-9de2-5d61540e0505.png |
21:19 |
est31 |
sofar, did i drop it |
21:19 |
est31 |
sorry for that |
21:20 |
sofar |
well, then we need a solution because I can't continue work on my mobs if they can't walk through a grass plant |
21:20 |
jin_xi |
they could eat, ie remove the grass :) |
21:20 |
est31 |
sofar, do you remember the old commit id of the patch |
21:21 |
est31 |
found it its 9536d5c52e |
21:22 |
MillersMan |
Fixer: Is it planned to be fixed in the engine or in lua? 3581 mentions an ABM |
21:22 |
|
ElectronLibre left #minetest-dev |
21:22 |
Fixer |
MillersMan, i think in engine, lua was very crude workaround before proper fix in engine is available |
21:23 |
Fixer |
MillersMan, devs fixed water spread in air, but water still gets stuck and needs reactivation, needs fix in engine |
21:26 |
MillersMan |
Ok, thanks, I'll have a look at its code |
21:26 |
|
Fritigern joined #minetest-dev |
21:27 |
|
Fritigern joined #minetest-dev |
21:29 |
est31 |
sofar, added your commit again |
21:29 |
est31 |
sofar, your commit was lost because ive used this github feature to merge your pr |
21:29 |
est31 |
but didnt update my local clone |
21:30 |
est31 |
so when i pushed from my clone again, your commit got removed |
21:30 |
est31 |
but now its there again |
21:34 |
sofar |
kewl |
21:41 |
|
paramat joined #minetest-dev |
21:54 |
MillersMan |
Fixer, paramat: Where are nodes added to the transforming liquid queue after loading? Couldn't find any code in C++ except for LUA-api |
21:55 |
paramat |
not sure |
21:55 |
Fixer |
totally not sure |
21:56 |
Fixer |
have you guys seen falling nodes forever? (sitting on the ground) |
21:58 |
paramat |
only when i edited tnt, i had those tnt entities that blow up after restart |
21:58 |
Fixer |
yeah |
21:58 |
Fixer |
same |
21:59 |
Fixer |
blowing up lots of tnt and rarely i got those entities |
21:59 |
Fixer |
with default tnt |
22:01 |
paramat |
your lighting glitch with the tnt chain may be due to updateLighting, which is known to occasionally create lighting bugs, especially if used rapidly |
22:02 |
Fixer |
https://i.imgur.com/nSsEfKK.jpg |
22:02 |
paramat |
the lighting bugs near lava + water mountains are not surprising |
22:02 |
Fixer |
hah |
22:02 |
paramat |
:/ |
22:02 |
hmmmm |
lighting bugs aside, that looks impressive |
22:02 |
Fixer |
https://i.imgur.com/jp0HHoK.jpg |
22:03 |
Fixer |
even more impressive |
22:03 |
hmmmm |
did you do that with a voxelmanip? |
22:03 |
Fixer |
default tnt |
22:03 |
hmmmm |
i mean how did you generate those holes... |
22:03 |
est31 |
nah the first one is more impressive somehow |
22:03 |
paramat |
tnt uses vm now yes |
22:03 |
Fixer |
hmmmm, by TNT... |
22:03 |
paramat |
heh |
22:03 |
hmmmm |
somehow i take it that fixer is not the developer of this mod |
22:04 |
hmmmm |
hrmm, well it must've used Map::updateLighting, so at least i can rest knowing it's not *my* bug |
22:04 |
Fixer |
i've blow up main huge hole with sofars PR |
22:04 |
paramat |
sofar has rewritten tnt |
22:04 |
Fixer |
you can stuck really big TNT cube that will be so awe_some to see |
22:05 |
Fixer |
huge explosion, and pretty fast |
22:05 |
Fixer |
i can make that light bugs easily |
22:05 |
Fixer |
just light lots of tnts near each other and make them bounce in all directions |
22:06 |
Fixer |
and those shadow have nice gradients |
22:06 |
hmmmm |
tbh i'd rather invest more time into developing a less error prone lighting system that uses the hardware rather than go on a never-ending bug fixing hunt for this buggy lighting algorithm |
22:07 |
Fixer |
btw, you never seen real holes |
22:07 |
Fixer |
Red Crab has so huge one, I can't even describe, it is thousand of nodes deep and like 50 nodes in diameter |
22:07 |
Fixer |
probably made with some hacks |
22:08 |
Fixer |
hmmmm, yes, lighting system, i just can't cry anymore looking at it |
22:08 |
Fixer |
and water |
22:08 |
jin_xi |
yay voxelmanips are awesome, i have thrown ridiculously large stuff at them without problems |
22:08 |
paramat |
dude, you nevah seen real holes |
22:09 |
hmmmm |
i saw yo momma's hole |
22:09 |
hmmmm |
does that count? it was 50km in diameter |
22:09 |
Fixer |
lol |
22:09 |
Fixer |
https://i.imgur.com/zYLhS3Z.png be calm and observe this |
22:10 |
Fixer |
i just fffs at it and ... |
22:10 |
Fixer |
i lose faith |
22:10 |
Fixer |
it is never ending facepalm |
22:10 |
Fixer |
and that pesky moretrees |
22:12 |
Fixer |
https://i.imgur.com/27wD9mF.png flying forever |
22:13 |
Fixer |
well, until restart |
22:18 |
paramat |
the moretrees thing is a lighting bug in l-system that was missed or perhaps not occurring when it was merged |
22:19 |
Fixer |
even underwater: https://i.imgur.com/fPUA1wk.png (above stone + lava) |
22:19 |
jin_xi |
treegen does not do any light related stuff itself, it calls updateLighting |
22:20 |
|
millersman joined #minetest-dev |
22:49 |
hmmmm |
paramat: right now, all the mapgens work iteratively on the same buffer |
22:50 |
millersman |
Fixer, paramat: I think I found the issue: Loaded blocks are never added to the transforming liquid queue if they weren't already on it, newly generated blocks are manually added by the mapgen |
22:50 |
hmmmm |
what if each procedure that modifies terrain (i.e. the important ones) writes to a buffer, and then all of them are composited together |
22:50 |
hmmmm |
and mods of course could request these intermediate buffers |
22:51 |
Fixer |
millersman, the problem is how to fix this iirc |
22:51 |
hmmmm |
that way a mod could know that something is a river or a mountain |
22:51 |
millersman |
I think the proper solution would be to do something like MapGen::updateLiquid for loaded blocks, either in ServerMap::loadBlock or in EmergeThread::getBlockOrStartGen, not sure which one to choose |
22:52 |
paramat |
interesting .. |
22:53 |
hmmmm |
this information could also be used in determining biomes |
22:53 |
hmmmm |
note that i use the word 'determine', not 'generate' |
22:54 |
hmmmm |
biome-related noise is generated, but biomes are ultimately determined, merely using the generated noise as a consideration |
22:54 |
millersman |
Another in my opinion optimal solution would be to add a new method finishLoad to ServerMap and call this from EmergeThread::run, any objections? |
22:56 |
millersman |
It would work similar to MapGen::updateLiquid but only on a per block base |
22:58 |
|
MillersMan joined #minetest-dev |
22:59 |
paramat |
there may be performance issues with updating liquids more often |
22:59 |
paramat |
some have looked into this and considered |
23:00 |
paramat |
it's possible it wasn't done due to excessive load |
23:02 |
paramat |
there's discussion about this in a github thread somewhere |
23:04 |
|
paramat left #minetest-dev |
23:09 |
Fixer |
MillersMan, you can make pr for review |
23:25 |
MillersMan |
finished the fix, just have to commit it and create the pr |
23:31 |
Fixer |
nice |
23:32 |
|
Icedream joined #minetest-dev |
23:52 |
MillersMan |
Fixer: i found two possible limitations that could be fixed with a lookup into the upper and lower blocks if they are loaded, which would actually improve performance, I'll add them too, but testing might take a little longer |
23:55 |
Fixer |
MillersMan, have you read discussion over here, it may be useful? https://github.com/minetest/minetest/pull/2977 |
23:57 |
MillersMan |
I think one of my limitations is exactly the one mentioned there, if i add the lookup to the upper and lower blocks I'll prevent spamming the queue |
23:58 |
MillersMan |
Another question: can I limit the range of loaded blocks without limiting the viewing range? |
23:59 |
Fixer |
MillersMan, if you want to test some exotic kinds of stuck water, i made a copy of a world from popular server: https://github.com/minetest/minetest/files/101456/Just.Test.zip Note: it is for exotic kinds, also, copy is partial, so on edges some water can start flowing down, also, world is somewhat laggy so nevermind the lags :) do not test it for speed on this world |
23:59 |
Fixer |
MillersMan, example of nice stuck liquids: https://cloud.githubusercontent.com/assets/16494741/12523512/05ed0a54-c160-11e5-9de2-5d61540e0505.png |
23:59 |
Fixer |
on this world |
23:59 |
Fixer |
coordinates also present |
23:59 |
Fixer |
MillersMan, maybe you can |