Time  Nick        Message
04:26 Zeno`       How about: http://dpaste.com/16DHSTJ
04:26 Zeno`       when indented properly of course
04:29 Zeno`       (regrading #4068)
04:29 ShadowBot   https://github.com/minetest/minetest/issues/4068 -- Mingw cross-compiler error for minetest ver 8fe753c
04:36 hmmmm       sure, i guess that's fine
04:40 Zeno`       it's probably the neatest solution without restructuring everything
04:40 Zeno`       I'll merge it soon then
04:51 hmmmm       gahk
04:51 hmmmm       the mapgen is a total mess
04:58 hmmmm       question:  you have a class that you wanted to abstract away, so you made a base class that's shared with other similar classes
04:59 hmmmm       however you forgot to delete one of the members from the derived class that is now present in the base class
04:59 hmmmm       now, when the member gets assigned in the newly derived class, it'll get applied to the derived instance of the variable, not the base instance of the same name
04:59 hmmmm       how can you prevent this mistake from happening?
05:00 hmmmm       frankly i don't trust my eyes
05:03 Zeno`       huh
05:06 hmmmm       https://paste.fedoraproject.org/361697/62165558/
05:06 Zeno`       The compiler doesn't even emit a warning?
05:06 hmmmm       nopers
05:07 hmmmm       [ryan@titan] ~/dev/minetest% clang++ -Wall -pedantic test.cpp -o test
05:07 hmmmm       [ryan@titan] ~/dev/minetest%
05:08 Zeno`       O.o
05:09 Zeno`       even Weverything doesn't give a warning. I dunno
05:10 hmmmm       now there's something i'd like a warning for
05:10 hmmmm       that, and omitting a statement's effect due to undefined behavior technically allowing it to do nothing
05:10 Zeno`       I don't like it
05:11 * Zeno`     writes to the C++ committee
05:11 hmmmm       write to the clang committee instead
05:11 Zeno`       and gcc
05:11 gregorycu   Oh, standards questions/issues, I love these
05:12 Zeno`       nah, it's more of a warnings issue
05:12 Zeno`       https://paste.fedoraproject.org/361697/62165558/
05:12 gregorycu   "Nothing" is a subset of "anything"
05:12 Zeno`       deep
05:13 hmmmm       compilers have all the most useless warnings you can imagine
05:13 hmmmm       but the silent, deadly, and subtle stuff?  naah
05:13 gregorycu   What's the undefined behaviour there?
05:13 hmmmm       nothing is undefined
05:13 gregorycu   oh...
05:14 gregorycu   That will print 3 and 5 right?
05:14 hmmmm       right
05:14 gregorycu   So... what's the comment?
05:14 hmmmm       my original question was, since the compiler doesn't print a warning about this, how could you prevent this mistake from happening?
05:14 Zeno`       it's not too bad when the classes are small and right next to each other
05:14 gregorycu   Ahh ok
05:16 gregorycu   I suppose it's not a warning cause you can't avoid it
05:17 gregorycu   Well, you can change the name I suppose
05:17 * gregorycu sees topic
05:17 gregorycu   Hooray, we are in freeze!
05:17 hmmmm       it's horrible because look
05:18 hmmmm       let's say you're refactoring your Zorp
05:18 gregorycu   Stupid Zorp
05:18 hmmmm       and you noticed that ZorpBlah and ZorpFoo both share a lot of code
05:18 gregorycu   I get why it's stupid
05:18 hmmmm       "i know, i'll abstract it to Zorp and have ZorpBlah and ZorpFoo derive from Zorp"
05:18 gregorycu   Several compilers warn when you shadow member functions
05:18 hmmmm       one of the things you abstract away is a Foobar * to something
05:19 Zeno`       well, let's say the base class isn't even yours (it's upstream) and upstream adds a new member variable that just happens to have the same name you've used in your derived class
05:19 hmmmm       well turns out you forgot to remove the Foobar * declaration from ZorpBlah and it assigns the ZorpBlah to your Foobar, not the Zorp
05:19 hmmmm       so when the Zorp code tries to use your foobar, you're screwed
05:20 gregorycu   Zeno` has a point
05:20 gregorycu   Either way, you're a bit boned
05:20 hmmmm       I know
05:20 hmmmm       that's the argument for it not being a warning
05:20 Zeno`       that'd take a while to find I imagine
05:20 Zeno`       I don't look at header file changes hehe
05:20 Zeno`       (when I update package foobar)
05:20 gregorycu   Right
05:21 gregorycu   Did you see my pathfinder hmmmm
05:21 hmmmm       yea
05:21 hmmmm       excellent work
05:21 gregorycu   Good
05:21 gregorycu   I did it to impress you, so I'm glad you're happy!
05:23 hmmmm       wth
05:23 hmmmm       so i just found out that gcc/clang have -Wshadow
05:23 hmmmm       i enable that, it still doesn't warn
05:25 Zeno`       -Weverything enables everything so I could have told you that :P
05:26 gregorycu   lol
05:26 gregorycu   Yeah, all vs everything
05:26 gregorycu   Fun for the family
05:26 Zeno`       yep
05:26 Zeno`       everything is more than all!
05:27 * gregorycu watches math majors tremble in rage
05:27 gregorycu   What should I work on
05:27 Zeno`       and philosophers nod their heads sagely
05:28 hmmmm       \forall
05:29 hmmmm       \forall gregorycus, \exists bug \in minetest such that he should solve it
05:29 hmmmm       Proof:  Left as an exercise for the reader.
05:29 Zeno`       nah QED
05:30 hmmmm       hah
05:30 hmmmm       this one prof i had would always write QED to take up all the remaining space on the chalkboard when he got done with a theorem
05:30 gregorycu   I'll work on the pathfinder some more
05:31 hmmmm       he'd say, "Qed, baby!"  actually pronounced it out like "qued"
05:31 Zeno`       good idea. then nobody can add stuff to the end. LOL at qued
05:31 hmmmm       fun times
05:37 gregorycu   hmmmm: That was like... what... 30 years ago?
05:37 hmmmm       ?
05:38 gregorycu   You're old and grizzled right?
05:38 hmmmm       no lol
05:38 gregorycu   At uni, whiteboard were all the rage
05:39 hmmmm       in the new buildings there were whiteboards
05:39 Zeno`       UNSW still uses chalkboards
05:39 Zeno`       particularly in the older buildings; if it aint broke don't fix I guess
05:39 hmmmm       i don't like whiteboards though
05:41 Zeno`       they're the wrong colour for a start
05:41 * nore      agrees
05:42 nore        We still use blackboards here too, these are a lot better
05:43 nore        It's impossible to get a pen that still writes on a whiteboard after an hour...
05:43 nore        Hi all btw :)
05:44 * hmmmm     waves
05:44 * Zeno`     waves at nore
05:51 gregorycu   You know that topic I always bring up
05:52 gregorycu   C++11, when are we switching
05:58 nore        gregorycu: some day (tm)
05:58 nore        well, I'd like to switch to C++11 too
05:59 nore        IIRC, we had to wait until Ubuntu LTS (I don't remember which version, but it didn't have C++11 support) was no longer supported
05:59 nore        and I think this has just happened, hasn't it?
06:01 hmmmm       well
06:01 hmmmm       you know what they say, right?
06:01 hmmmm       don't bother using a technology that isn't at least 10 years old
06:01 hmmmm       just 5 more years guys
06:05 kahrl       /msg centbot c6eol
06:05 kahrl       CentOS 6 will go EOL on 30 November, 2020 -- in 4 years, 30 weeks, 2 days, 17 hours, 55 minutes, and 21 seconds
06:05 nore        hmmmm, so I should wait 5 years before playing minetest too? :p
06:05 hmmmm       possibly
06:05 gregorycu   That's when it will be ready
06:05 kahrl       those 21 seconds are already over!
06:06 nore        kahrl: CentOS 6 has no C++11 support either?
06:06 gregorycu   Why does that exist, that bot
06:06 kahrl       nore: it doesn't
06:06 nore        too bad
06:07 kahrl       it has gcc 4.4.7
06:08 gregorycu   1000 pathfinding calls takes 1357 milliseconds :(
06:09 hmmmm       for the amount of work that pathfinding actually does, that's not bad!
06:09 nore        gregorycu: over which distances?
06:09 gregorycu   It was 26
06:09 gregorycu   But it also wasn't that convoluted of a path
06:10 nore        well, it's not bad at all actually then
06:10 nore        gregorycu: most of the work is in surface detection anyway
06:10 gregorycu   I was profiling it, I know how to make it faster
06:11 gregorycu   if (std::find(visited_nodes.begin(), visited_nodes.end(), node) != visited_nodes.end())
06:11 gregorycu   visited_nodes is a vector
06:11 nore        WHAT
06:11 nore        but... that's killing the complexity
06:11 gregorycu   I SAID, visited_nodes IS A VECTOR
06:12 gregorycu   vector is faster than set for small n
06:12 gregorycu   Guess n isn't small enough
06:12 gregorycu   I'll make it a set
06:12 nore        lookup table is best usually, but I guess we don't renumber the vertices
06:13 hmmmm       in my testing, a set outperforms a vector after 4 or 5 elements
06:13 nore        use est31's GridContainer (or whatever the name was) maybe
06:13 hmmmm       at least on my processor, on my platform, with my specific libc
06:13 gregorycu   Yeah, I've heard the cutoff is 50
06:13 gregorycu   But it's different for everything
06:13 hmmmm       in my test it was comparing u8s
06:14 gregorycu   lol
06:14 gregorycu   um
06:14 gregorycu   Making it a set made it worse
06:14 gregorycu   2100 milliseconds
06:14 hmmmm       https://paste.fedoraproject.org/361710/62169690/
06:15 nore        gregorycu: and a position->bool map?
06:15 hmmmm       this is how i decided to go with a set over a vector for storing biomes in decorations
06:15 nore        (well, when I say map, it can be an array actually)
06:15 gregorycu   position to bool may be faster
06:15 gregorycu   May use a lot of memory too
06:16 hmmmm       yea you want him to use a hashtable basically
06:16 gregorycu   I'll try an unordered set
06:16 gregorycu   Yeah, hashtable
06:16 hmmmm       all in due time, you just need to wait 5 more years
06:16 gregorycu   :P
06:17 gregorycu   To be honest, it could switch between set and unordered set depending on the compiler version
06:17 gregorycu   So those plebs stuck on old compiler can continue to enjoy set
06:18 nore        unordered_set is C++11?
06:18 hmmmm       yes
06:18 hmmmm       why do you think minetest doesn't use any unordered maps/sets?
06:18 nore        ...
06:18 nore        hadn't thought about it
06:19 hmmmm       gregorycu, are you using -O2?
06:19 gregorycu   Of course
06:19 gregorycu   lol wait
06:19 hmmmm       well maybe that's the problem
06:20 gregorycu   My bad
06:20 gregorycu   std::find with map iterator arguments may not do the smart thing
06:22 gregorycu   1150 milliseconds
06:22 nore        a bit more efficient then
06:24 gregorycu   I have to try with unordered_set
06:29 hmmmm       https://github.com/kwolekr/minetest/commit/ff3e883e740e3f4f88b5e600f3e101b40c93b4c0
06:33 gregorycu   lol
06:33 gregorycu   1100 milliseconds
06:33 hmmmm       1161 deletions
06:33 hmmmm       suckit
06:33 gregorycu   Doesn't paramat want duplication deliberately?
06:34 hmmmm       lol :p
06:34 hmmmm       possibly!
06:35 hmmmm       the contributor ranking is based off of number of commits, not number of lines changed
06:35 sofar       <hmmmm> 1161 deletions, suck it
06:35 sofar       well said!
06:37 hmmmm       liposuction
06:40 gregorycu   lol, I want 1000 tps
06:41 gregorycu   And at the moment it takes 1050ms to do 1000 pathfinding calls
06:41 gregorycu   It's like it's trolling
06:41 hmmmm       you can probably beat it by using a custom allocator
06:41 gregorycu   I'm not that desperate
06:42 hmmmm       Ok friend
06:55 gregorycu   850ms
06:55 gregorycu   Replace a std::deque with a std::list
06:56 gregorycu   (Inserting into the middle of a std::deque isn't that fast)
07:04 Zeno`       stuck chat window lol
07:04 Zeno`       I will attack all the BIG bugs like this one
07:08 Zeno`       need a rest after that
09:32 gregorycu   850ms for 1000 calls to the pathfinder
09:45 nore        gregorycu: ordered or not?
09:45 gregorycu   What do you mean?
09:45 nore        For these 850ms
09:45 nore        Ordered or unordered set?
09:45 gregorycu   Oh
09:45 gregorycu   I rolled my own unordered set
09:46 nore        :D
09:48 gregorycu   I'm cheating a little
09:48 gregorycu   I'm retaining allocated memory to use next time
11:17 Fixer       !tell millersman not sure why this is not going down with your PRs: https://i.imgur.com/Eo0gaMG.png (stuck flowing nodes only, including up)
11:17 ShadowBot   Fixer: O.K.
11:23 gregorycu   450 milliseconds
11:23 gregorycu   Just saying
11:24 gregorycu   Actually, more like 250ms
11:25 gregorycu   Fuck I'm good
11:26 Fixer       you are famous
11:26 * Fixer     plays with water flows
11:26 gregorycu   Yeah, even my mum knows who I am
11:33 Fixer       that water PRs fix works good to me at this second
11:34 Fixer       max_lag 0.4 or less
11:36 Fixer       fixed all those horrible stuck liquids on my test map
11:43 nore        gregorycu: wow
11:44 gregorycu   It was about 4300 paths per second before
11:44 gregorycu   With a distance of 26
11:45 Zeno`       lots of sheep
11:45 Zeno`       It'll be like New Zealand
11:45 gregorycu   Ok, I'll delete it all
11:46 Zeno`       ?
11:46 gregorycu   We don't want it to be like nZ
11:46 gregorycu   by the way, std::priority_qeueue is boss
11:46 Zeno`       lol
11:46 gregorycu   Heaps better than std::list
11:46 gregorycu   PUN INTENDED
11:48 Fixer       !tell millersman nevermind, it is going down fine :)
11:48 ShadowBot   Fixer: O.K.
16:16 paramat     now looking at your work hmmmm
16:33 est31       nice to see the freeze in effect
16:34 paramat     in full effect maaan
16:34 est31       just came here to acknowledge that
16:34 est31       11th as date is fine
16:35 Zeno`       lol
16:35 Zeno`       paramat and est31 are going on a date!
16:36 paramat     :}
16:43 Fixer       is v5 cave huge one? https://i.imgur.com/FYlQP5A.jpg
16:44 Fixer       testing reflow prs here
16:44 paramat     that's mgvalleys
16:44 Fixer       never seen so huge caves
16:44 Fixer       200-300 nodes from buttom to ceiling
16:44 Fixer       or more
16:44 paramat     those are a copy of my 'subterrain' mod
16:45 paramat     they're not pseudorandom they use 3D noise, so are unlmited in size
16:46 Fixer       very nice caves
17:46 paramat     :/ github did it again, 5 pages of PRs were 'updated 13 hrs ago'
17:50 nore        paramat: I guess these are the PRs whose diff had to be retested and where the Travis build was run again
17:50 paramat     i see
18:00 paramat     removed #4050 from milestones
18:00 ShadowBot   https://github.com/minetest/minetest/issues/4050 -- LBM's stop getting generated after a while
18:14 Zeno`       sodder!
18:15 Zeno`       lol
18:15 Zeno`       they cannot pronounce solder
18:16 paramat     hehe
18:25 * Zeno`     sodders together an helicopter
20:49 nore        paramat: maybe we can merge #3907 now that we are in freeze
20:49 ShadowBot   https://github.com/minetest/minetest/issues/3907 -- Update credits tab by est31
20:50 paramat     possibly, although i understood that as being merged just before release
20:51 paramat     will merge #4078 later if no objection
20:51 ShadowBot   https://github.com/minetest/minetest/issues/4078 -- Lua_api.txt: Add warnings of l-system lighting bug by paramat
23:42 paramat     now merging #4079
23:42 ShadowBot   https://github.com/minetest/minetest/issues/4079 -- Settings_translation_file: Update mapgen with cave width parameter by paramat
23:47 paramat     merged