Minetest logo

IRC log for #minetest-dev, 2016-04-30

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

All times shown according to UTC.

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 [ryan@titan] ~/dev/minetest% git diff --shortstat
07:42 hmmmm 6 files changed, 9 insertions(+), 319 deletions(-)
07:48 Zeno` [Hodor@habanero 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

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