Minetest logo

IRC log for #minetest-dev, 2015-11-01

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

All times shown according to UTC.

Time Nick Message
00:05 luizrpgluiz joined #minetest-dev
00:08 luizrpgluiz left #minetest-dev
00:15 hmmmm est31:  did you check out my patch?
00:45 hmmmm or anybody really
00:47 JohnnyComeL8ly Sorry, I'm a little behind.
01:13 luizrpgluiz joined #minetest-dev
01:19 luizrpgluiz someone has tested the modification of EST31?
01:19 JohnnyComeL8ly Where do I get it?
01:42 luizrpgluiz left #minetest-dev
01:45 luizrpgluiz joined #minetest-dev
01:46 luizrpgluiz left #minetest-dev
02:32 hmmmm bleh
02:33 hmmmm somebody on the mtgame side should've added a jack-o-lantern block for tonight :-)
02:33 hmmmm we never do these easter egg things, really ought to though
02:33 JohnnyComeL8ly Oh, boy... spooky.
02:33 hmmmm ermm... are you a developer?
02:34 JohnnyComeL8ly hmmmm, no.
02:34 JohnnyComeL8ly Doesn't stop me from being here, so I though.
02:34 JohnnyComeL8ly I don't interupt everybody else's thoughts.
02:34 hmmmm you seem to be a very active in discussion here
02:35 hmmmm very active participant*
03:08 Puka joined #minetest-dev
03:10 paramat joined #minetest-dev
03:12 paramat nore what's your opinion on game#665 ? just needs another -1 to close it
03:12 ShadowBot https://github.com/minetest/minetest_game/issues/665 -- Add many wooden fences made out of the 4 kinds of woods by LeMagnesium
03:14 paramat hmmmm i have an idea to add very simple optional lakes to flat mapgen, to provide water. just a single 2D noise, maybe even flat-bottom lakes too
03:14 hmmmm I don't know, at first glance I didn't like the idea of adding all these different kinds of wooden fences, that's totally mod material
03:15 hmmmm but then again I agree about having different kinds of wood with no use to them
03:16 hmmmm I can't help but feel like this is more of a minetest core issue, because this is a more fundamental problem where we have a group of nodes we'd like to make each with their own separate 'materials'
03:17 hmmmm paramat, isn't that the point of a "large cave"?
03:17 paramat ah yes
03:19 paramat it might be popular to have lakes though
03:20 paramat .. flat continents and islands for building
03:21 hmmmm well okay if you want it
03:21 paramat perhaps i'll experiment and see what people think
03:22 paramat 541 issues, amazing how they hang around in limbo
03:23 paramat i always feel like clearing most of them out
03:23 hmmmm so do i
03:23 hmmmm the fundamental problem is that they come faster than we can solve them
03:23 hmmmm i do like the satisfaction of solving an issue though
03:24 hmmmm paramat, did you look at the script lock fix??  i'm looking for somebody to review it
03:25 paramat ah i looked, i could test it but don't understand it
03:25 hmmmm it's okay i guess
03:25 hmmmm anyway I tried out nerzhul's clang 3.8 mapgen bug
03:25 hmmmm it's a problem with some kind of floating point optimization in -O2, i think it's a compile rbug
03:26 hmmmm i was flying across the map when all of a sudden my X and Z coordinates turned into "NaN", the map disappeared, and I started getting spammed with updateListener: invalid value in the console
03:26 paramat NyaN!
03:27 hmmmm this is going to be a treat to debug...
03:38 rubenwardy joined #minetest-dev
04:21 paramat #3324
04:21 ShadowBot https://github.com/minetest/minetest/issues/3324 -- Mapgen: Add watershed mapgen in hidden development form by paramat
04:26 paramat left #minetest-dev
05:24 hmmmm alright i narrowed down the main problem with the clang 3.7 bug
05:25 hmmmm basically clang decides that ANDing the result of an operand with 0x7FFFFFFF inside of noise2d() is optional
05:26 hmmmm interestingly I can't replicate the bug if I exclude everything except the expression
05:46 hmmmm alright I know the problem
05:47 hmmmm because of the " & 0x7fffffff" on the line where n is initially calculated, clang assumes that the value n will never go above 0x7fffffff, which is just flat out wrong
05:48 hmmmm if the first & 0x7fffffff is removed it doesn't change the calculation but now clang places the instruction where it's supposed to be, producing the correct result
05:51 hmmmm because integer *underflow* is undefined behavior in C
05:51 hmmmm so what does that mean, to clang developers?  "let's fuck up as much existing code as possible"
06:06 Supertanker2 joined #minetest-dev
06:21 Hunterz joined #minetest-dev
08:20 celeron55 i have an idea for a game, but i am not sure whether to build it on minetest or whether to build it separately
08:22 Krock joined #minetest-dev
08:22 celeron55 i think minetest should allow for making this (this is none of that space RTS bullshit), but this still might require too many changes to be feasible to make in time before i lose all motivation due to it taking too long
08:23 celeron55 this is a problem but i'm not sure if it can be solved
08:28 neoascetic joined #minetest-dev
08:29 neoascetic hi everyone. isn't armor groups for each entity stored until server restart?
08:39 Krock2 joined #minetest-dev
08:40 hmmmm celeron, do you feel like reviewing any of my commits?
08:40 hmmmm i really want to get some of this stuff in, i hate having too many unmerged branches
08:41 gregorycu joined #minetest-dev
08:41 hmmmm alright I'm convinced gregorycu and zeno are the same person
08:41 gregorycu ?
08:41 gregorycu Hello
08:41 hmmmm they both go inactive and become active again at the same time
08:42 gregorycu But we were fighting
08:42 hmmmm :)
08:42 gregorycu were/are whatever
08:42 gregorycu What's happening?
08:42 hmmmm not much
08:42 hmmmm do you feel up to reviewing a commit or two or three?
08:43 hmmmm or how about four?  even more?
08:43 gregorycu Haven't touched the code in like... 6 months...
08:43 hmmmm ahhh this is 2spooky4me
08:43 hmmmm you came back from the dead
08:43 gregorycu I thought you guys may be missing me too much, so I decided to come back
08:44 hmmmm happy halloween I guess
08:45 gregorycu Thanks, same to you
08:46 gregorycu Anything exciting been happening in the minetest world?
08:47 hmmmm we did nothing but fix bugs for almost an entire release cycle
08:50 gregorycu I was thinking of forking minetest, and adding python API bindings
08:50 gregorycu Just to see what they would be like
09:05 gregorycu_ joined #minetest-dev
09:19 jin_xi joined #minetest-dev
09:21 CraigyDavi joined #minetest-dev
09:22 CraigyDavi joined #minetest-dev
09:45 Calinou joined #minetest-dev
09:49 Gael-de-Sailly joined #minetest-dev
10:12 PilzAdam joined #minetest-dev
10:59 gregorycu Does 64 bit builds of minetest work?
10:59 gregorycu Or is that currently unsupported
11:04 Calinou gregorycu, they work? I use them on my laptop
11:04 gregorycu Sweet, thanks
11:04 gregorycu Trying to get minetest building again for me, struggling a bit
11:05 gregorycu Wanted to make sure it worked first :)
11:08 turtleman_ joined #minetest-dev
11:21 gregorycu What's the deal with SQLLite
11:22 gregorycu Is that meant to be build from within minetest, or are we meant to have an external lib that we link in
11:23 gregorycu There is a sqlite folder in src. But it appears files within that folder are not getting built
11:30 gregorycu I just copied the folder elsewhere and built it
11:33 gregorycu_ joined #minetest-dev
11:36 gregorycu Anyway, yeah crash
11:36 gregorycu Not a good first impression
11:41 gregorycu I bet nobody develops of Visual Studio
11:41 Calinou only BlockMen and PilzAdam really do IIRC
11:42 PilzAdam what?!
11:42 PilzAdam I am deeply offended that you think I would use windows
11:43 Calinou I thought you were on Windows
11:43 gregorycu Anyway, some technically un-defined behaviour code is flagged on Visual studio
11:44 gregorycu But it's harmless
11:47 H-H-H joined #minetest-dev
11:50 gregorycu Further to this, Visual Studio
11:50 gregorycu VS's implementation of std::vector<bool> is very very slow in debug
12:03 Darcidride joined #minetest-dev
12:10 Megaf joined #minetest-dev
12:12 gregorycu_ joined #minetest-dev
12:25 DFeniks joined #minetest-dev
12:34 ElectronLibre joined #minetest-dev
12:36 Megaf folks, is it possible to build the client without sqlite? I think that could be an option since I will be using the client only for online gaming
12:43 rom1504 online gaming doesn't use sqlite ?
12:53 Megaf I don't know, I don't think so, why would it?
12:53 Megaf sqlite is using to store map and rolback
12:54 Guest99666 joined #minetest-dev
12:54 rom1504 link?
12:56 Megaf my head?
13:03 ElectronLibre Megaf: SQLite is used if the client has enabled local map saving (using sqlite3 backend). I don't know if it's used for anything else by the client but you should keep it.
13:05 gregorycu Why do you want to build without it?
13:05 Megaf_ joined #minetest-dev
13:06 gregorycu Why do you want to build without it?
13:08 Megaf gregorycu: just to have a smaller binary and less compilation time
13:08 gregorycu Damn, you must have a pretty shitty computer if you can notice the difference in compile time
13:09 gregorycu (No offense)
13:09 Megaf shitty no, slow yes
13:09 Megaf Celeron M ULV at 900 MHz at the moment, 630 MHz most of the time
13:09 Megaf single core, 32 bit
13:09 Megaf single thread
13:12 gregorycu Yeah, took a look at the code
13:12 gregorycu Doesn't look like there is a way out
13:13 Megaf I could just quicly edit the src and remove sqlite stuff from there, and local map saving
13:13 gregorycu I mean, you could write your own sqlite which is noop
13:13 Megaf but I don't know if it's worht it
13:13 Megaf worth *
13:13 gregorycu Only one way to tell
13:14 gregorycu But it's like... what
13:14 gregorycu 6 functions or something
13:14 gregorycu Shouldn't really influence linking time much
13:14 gregorycu (Especially if you turn off linker code-gen)
13:20 luizrpgluiz joined #minetest-dev
13:25 Lunatrius joined #minetest-dev
13:32 Lunatrius joined #minetest-dev
13:40 Lunatrius joined #minetest-dev
13:43 zupoman joined #minetest-dev
13:48 Darcidride joined #minetest-dev
13:50 Darcidride joined #minetest-dev
14:33 Gael-de-Sailly joined #minetest-dev
14:35 rubenwardy joined #minetest-dev
14:39 technics joined #minetest-dev
15:02 celeron55 i think a reasonable way to enable wiki registrations could be to use a similar thing as what the forum is using, like https://www.mediawiki.org/wiki/Extension:StopForumSpam
15:02 celeron55 but i think i'm going to be lazy for the time being and not do that
15:10 nrzkt joined #minetest-dev
15:37 Soni joined #minetest-dev
15:37 luizrpgluiz left #minetest-dev
15:43 hmmmm joined #minetest-dev
15:54 ElectronLibre joined #minetest-dev
15:55 Darcidride joined #minetest-dev
15:59 sloantothebone joined #minetest-dev
16:05 celeron55 what the...
16:06 celeron55 i am getting a crash that looks dumb
16:07 gregorycu Not one of those smart crashes?
16:07 celeron55 this clearly is not smart
16:07 celeron55 https://gist.githubusercontent.com/celeron55/07146c806a344f0998df/raw/059463a2b73adfa972640770db3b22bc06f89665/gistfile1.txt
16:08 celeron55 it's overflowing the serializable range of values and the whole thing just aborts
16:09 celeron55 ...due to a position that could just be capped or reset or anything without any issue
16:11 gregorycu It's all beyond me, I'm going to go back to profiling
16:11 celeron55 of all the things imaginable, this is crashing due to an absolute velocity being higher than 200,000 nodes per second
16:11 nrzkt hmmmm, thanks for finding the bug with clang. Did you fixed it ?
16:11 celeron55 or, well, 2147483
16:11 celeron55 or, well, 214748.3
16:12 hmmmm yes, I'm just waiting for reviews
16:13 VanessaE why isn't velocity being capped at some reasonable value? (like mach 1 or something -- 340.3 m/s)
16:13 gregorycu I think c would be better
16:13 gregorycu More realistic
16:13 sloantothebone joined #minetest-dev
16:13 VanessaE heh
16:13 VanessaE that would require 300,000 km/s
16:14 hmmmm celeron55:  maybe you should fix the code trying to serialize a NaN
16:14 celeron55 well we can't serialize values over about a thousandth of light speed
16:14 celeron55 wait, is it a NaN
16:14 hmmmm it says "i=-NaN"
16:14 hmmmm if that assert hadn't been there, you would've never known
16:17 gregorycu By the way, you know what is slow. Using a vector as a queue
16:17 hmmmm who's doing that?
16:17 gregorycu ProfilerGraphs
16:18 hmmmm ahh
16:18 hmmmm no idea who might've made that mistake
16:18 celeron55 lol, quality code by the almighty celeron55
16:18 gregorycu lol
16:19 celeron55 it's fine; ship it
16:20 gregorycu It's 10x faster as a deque
16:20 celeron55 it's a pretty cold code path though
16:21 gregorycu It was still 8% of my debug build
16:21 celeron55 one realloc per frame is nothing
16:21 gregorycu (I'm profiling release now)
16:21 gregorycu It's not a realloc
16:21 gregorycu It's a realloc and a shuffle
16:21 celeron55 ...oh, except it's C++ and that means it's something ridiculous
16:21 gregorycu A shuffle of maps
16:26 gregorycu http://s23.postimg.org/7qrpmopaj/profile.gif
16:26 gregorycu Not really much in release, still more than it needs to be
16:27 hmmmm https://github.com/kwolekr/minetest/commits/master  PTAL
16:28 sfan5 looks good
16:28 hmmmm ok pushing
16:28 gregorycu "Fix C++11 compatibility"
16:29 hmmmm wrong commit
16:29 gregorycu So, is minetest going to C++11, or is it just a supported config
16:29 hmmmm it's just a supported config for now
16:29 hmmmm none of us actually use C++11
16:29 gregorycu ahh ok
16:32 Krock Thanks god no-one uses C++11 yet :D
16:32 hmmmm https://github.com/kwolekr/minetest/commit/52e5b513ed9dc143c967c733423fe751e1b663d1  PTAL
16:33 Taoki joined #minetest-dev
16:33 hmmmm Krock:  It's okay, it works fine
16:33 hmmmm freeminer does iirc
16:33 Krock hmmmm, the thing is more like I'd need to lean how to use MinGW on windows cuz VC 2012 doesn't support Win 5.1
16:33 Krock *learn
16:34 hmmmm 5.1 as in Windows XP?
16:34 Krock Yes
16:34 hmmmm it does...
16:34 hmmmm you just need to add a manifest file
16:34 gregorycu I use C++11 at work. Works fine.
16:34 hmmmm or, not even, there's a certain compile option you need I forget
16:34 hmmmm let me check my VS install
16:36 hmmmm Krock:  go to the minetest Property pages, Configuraiton Properties -> General -> Platform Toolset
16:36 hmmmm change it to "Visual Studio 2012 - Windows XP (v120_xp)"
16:36 Puka joined #minetest-dev
16:37 celeron55 https://gist.githubusercontent.com/celeron55/a91cbbe7fec054962f2b/raw/eb0cbcd9bd3c5956038eac0d5e634291e0a80af5/gistfile1.txt
16:37 celeron55 WTF?
16:38 hmmmm you should be using -O0
16:38 celeron55 maybe -nan(0x400000) isn't a valid value also, but is there no error if it isn't?
16:39 hmmmm pretty sure there's no error
16:39 est31 joined #minetest-dev
16:39 hmmmm FWIW i've seen the player's coordinates to jump to nan when compiled under clang 3.7
16:40 Krock hmmmm, but for this I'd need VS2012, which doesn't have Win XP on its stupported list
16:40 Krock *supported
16:40 hmmmm Krock:  You sure??
16:40 Krock screenshot coming in 30s
16:40 hmmmm Krock:  I'm just saying I compile things for windows XP on vs2012
16:40 est31 Microsoft hasn't Win XP on its supported list anymore at all.
16:41 Krock hmmmm, yes. Ironically this works, but not on WinXP itself
16:41 hmmmm ohhh
16:41 hmmmm i didn't understand what you meant
16:41 hmmmm why would you use windows XP as a build host?
16:41 Darcidride joined #minetest-dev
16:41 Krock Cuz it's the system I got here :)
16:42 hmmmm I would suggest you stick with a recent version of VS to compile, otherwise you're giving up many great bugfixes and optimizations
16:42 hmmmm est31:  https://github.com/kwolekr/minetest/commit/52e5b513ed9dc143c967c733423fe751e1b663d1  did you look at this yet?
16:43 est31 hmmmm, what exactly is the problem here
16:44 hmmmm it says in the commit message
16:44 est31 second, what are recursiv mutexes for you
16:44 est31 bc what I googled wasn't consistent with how you used them
16:44 hmmmm recursive mutexes are simply mutexes you're allowed to re-enter within the same thread
16:45 est31 aha
16:45 hmmmm did you see this?  https://github.com/kwolekr/minetest/commit/52e5b513ed9dc143c967c733423fe751e1b663d1#diff-5962b617a85e4277ae7c8e57e8b6d38aL56
16:45 est31 well that would make sesne
16:45 est31 sense*
16:46 est31 to fix a deadlock I mean
16:46 hmmmm if you fix that one line alone, then scriptlock will start working, but then you have a deadlock issue because you can't control the re-entry of scriptapi functions
16:46 kaeza joined #minetest-dev
16:46 est31 why is giving it a name making it work?
16:47 hmmmm because Foobar(blah) is a temporary object
16:47 hmmmm it is destroyed before the next semicolon
16:47 est31 oh ok
16:47 hmmmm Foobar foo(blah) is a scoped, local object
16:47 gregorycu Wow
16:47 hmmmm it is destroyed when execution reaches the end of the current scope
16:47 gregorycu That is some very horrible code you fixed
16:47 hmmmm ty
16:47 Krock <irrelevant> http://i.imgur.com/8xAdkWB.png </irrelevant>
16:48 hmmmm so basically ever since sapier did the lua api refactoring, the script has been running with effectively zero synchronization
16:48 gregorycu lol
16:48 celeron55 looks like what is happening in here is that NaN is directly set as the velocity of the object by some crappy Lua code
16:48 hmmmm since the lock is acquired and released on the same line
16:48 gregorycu It's _almost_ a no-op
16:48 hmmmm it just so happens by coincidence that envlock was always held where it needed to be too, so we didn't see a bug
16:48 celeron55 i don't think this should be left to be catched by the serialization code 8)
16:49 gregorycu Just introduces a memory barrier
16:49 est31 yea there is no real layer between lua code and serialisation code
16:49 est31 unfortunately
16:49 est31 we really need such a layer though, e.g. when physics is calculated already due to the F1000 limits
16:49 celeron55 i mean i need to add a check for this to the lua-to-c++ interface
16:49 est31 so e.g. we should cut the objects position on the world border
16:51 celeron55 hmm
16:51 est31 a check there would be ok as well
16:51 celeron55 maybe this should be checked in the common check_v3f() function
16:51 celeron55 for NaN, that is
16:51 gregorycu Krock: The v120_xp target is because with v120, MS dropped support for XP
16:51 celeron55 because i don't think we ever want NaN anywhere
16:51 est31 yea I cant think of an usecase that needs NaN
16:51 gregorycu Then they added it back, under a different target
16:52 gregorycu Those toolsets under 120 should already support XP
16:52 est31 also, make it check for F1000 limits
16:53 est31 then at least lua can't "poison" us directly
16:54 est31 but the problem with that ofc is, what happens on check_v3f?
16:54 est31 it gives a LuaError right?
16:55 est31 so basically no other way for lua code that wants to be on the safe side than to replicate the checking code before calling the method, no?
16:55 est31 e.g. have user enter sth
16:55 est31 the old bug was /area_pos1 999999999999, 0,0
16:55 est31 or so
16:56 est31 was above F1000 limit, so would lead to direct crash
16:56 est31 then I fixed it by checking the position in the code to spawn entities
16:56 est31 if the entity is outside the world border it doesnt get added
16:56 est31 but no error with a stacktrace
16:57 crazyR joined #minetest-dev
16:57 est31 this way lua can nicely say "sorry but the minetest engine didn't like the coordinates you entered"
16:58 est31 instead of crashing
16:58 est31 it still has to check the returned object pointer for nil
16:59 hmmmm soo any word on 52e5b51?
17:00 est31 added a pointless comment
17:00 hmmmm oh I'm going to change the name of that variable in an upcoming commit
17:01 hmmmm not because it "needs underscores" but because it's misleading
17:01 hmmmm that's a mutex on the lua state, there are multiple lua stacks associated with a single state
17:01 hmmmm so calling it a stack mutex is simply wrong and misleading... in fact it's confused people before
17:02 est31 ah you don't add it in the commit
17:02 est31 yea and the second thing is that it is called mutex but its aa bool
17:02 celeron55 est31: i don't think checking f1000 limits universally in check_v3f is wise
17:03 celeron55 they don't apply to everything, and even if they do, some of them apply with *BS and some with *1 8)
17:03 celeron55 this is a mess for sure but...
17:05 Lunatrius joined #minetest-dev
17:05 est31 well, then no check
17:05 est31 only for NaN
17:06 celeron55 at least we know it's a mess
17:06 est31 but still, if we check in check_v3f then we change the float type
17:06 est31 and changing types is big business
17:07 est31 basically we say what is allowed to be called float
17:07 est31 and what not
17:07 celeron55 yes; but a known fact is that NaN will mess things up pretty hard almost always and is not part of the API in any other way than implicitly due to the languages used
17:18 celeron55 why am i not getting a backtrace when i throw a LuaError?
17:18 est31 because you have builtin lua
17:18 est31 dunno why it has no backtrace
17:18 est31 luajit has backtrace
17:18 CraigyDavi joined #minetest-dev
17:18 hmmmm because script_execution_wrapper() is unavailable on vanilla lua
17:19 celeron55 this is dumb
17:19 celeron55 there was a backtrace previously
17:19 celeron55 how can anyone pretend this regression is okay
17:20 est31 how did it work back then
17:20 est31 dunno who introduced the regression
17:20 celeron55 how can i remember but it generally did work; now where's the commit that breaks this?
17:21 est31 bisect :)
17:21 celeron55 this is stupid; i should not need to fix stuff like this
17:21 est31 but my guess is it didn't break in 2015
17:22 celeron55 my guess is this broke in the past few months
17:22 hmmmm ehh, no, it was broken for quite a long time
17:23 celeron55 it *is* broken
17:23 celeron55 i sure hope the backtrace-printing function is still somewhere to be found so that i can just call it
17:24 hmmmm well, okay
17:24 hmmmm script_error_handler is the global lua error handling function
17:24 hmmmm lua_pcall encounters a runtime error, executes this function, which grabs a backtrace from debug.traceback and leaves it as the top element of the lua stack
17:25 hmmmm lua_pcall returns non-zero, so therefore ScriptApiBase::scriptError() is called
17:25 hmmmm if the top element is convertible to a string, that's used as the exception description
17:26 hmmmm so the conclusion is that for some reason, lua is either not calling the error handling function or debug.traceback isn't producing a string ..?
17:38 celeron55 is this due to the different handling of C++ exceptions between Lua and Luajit?
17:38 celeron55 somebody made backtraces only work in luajit?
17:38 celeron55 i repeat: this is dumb; why do i have to be doing this
17:40 hmmmm because you're practically the only person not using luajit
17:40 celeron55 lua is a fine piece of software for general debugging
17:41 celeron55 for one, valgrind can run it
17:41 est31 the only time I use normal lua is when I do valgrind stuff
17:41 est31 when Im done I rebuild with luaJIT
17:41 celeron55 from now on: do not touch Lua error handling without testing with lua and luajit
17:42 PilzAdam I use normal Lua, to check if everything still works reasonable with it
17:42 celeron55 both are supported
17:42 est31 we had an "error in error handling" bug, it was there for ages
17:43 est31 then ka hrl found the reason and fixed it
17:48 hmmmm i still don't quite understand how it was fixed
17:48 hmmmm the one instance where the error in error handling was after a regular runtime error, but the second where there was no associated runtime error was more interesting
17:49 est31 #1423
17:49 ShadowBot https://github.com/minetest/minetest/issues/1423 -- ServerError: error in error handling
17:49 est31 writeup there https://github.com/minetest/minetest/issues/1423#issuecomment-134472243
17:50 luizrpgluiz joined #minetest-dev
17:51 hmmmm so you're saying it's caused by an assert failing inside of the nested runtime error handler
17:52 est31 no
17:52 est31 the assert was only to confirm the theory
17:53 hmmmm but that theory doesn't explain the second interesting case
17:53 celeron55 i will have a few commits ready after some minutes
17:58 celeron55 https://github.com/celeron55/minetest/commit/1fcea9112b7f5fef520434ec2ae5269ea8864242
17:58 celeron55 https://github.com/celeron55/minetest/commit/deda3a9e4479abb96dbcd9afa32d78bc9b45c38f
17:58 celeron55 lua and luajit behaved exactly the same in this case
17:58 est31 ?
17:59 celeron55 i.e. minetest didn't print a backtrace with either
17:59 celeron55 now it does with both
18:00 est31 it did print a backtrace for a LuaError
18:00 est31 at least on luajit
18:00 est31 how did you test
18:00 celeron55 well try the first commit and see
18:00 hmmmm yeah, the second commit doesn't actually solve the problem...
18:00 hmmmm I'm sort of disappointed
18:00 celeron55 my test case is just a misbehaving game that for some unknown reason passes NaNs to ObjectRef::setvelocity()
18:01 Darcidride joined #minetest-dev
18:01 celeron55 solve what problem? if you have a problem, why do you expect it to be the same problem that i have
18:03 Soni joined #minetest-dev
18:04 celeron55 what i wanted to see is if this system is able to print any backtraces anymore and with that little code, it is; and it seems that the LuaError thrown by my added checks is being directly handled by that exception handler in ServerThread::run() so that's where i needed the backtrace
18:04 est31 LuaErrors do print a stacktrace for me
18:05 est31 I just confirmed
18:05 hmmmm sure, it fixes the immediate problem you have, but it's a hacky solution to be honest
18:05 celeron55 i'm not pushing this upstream if you happen expect that
18:05 celeron55 +to
18:05 celeron55 est31: where did you invoke one?
18:05 hmmmm of course not.  I didn't really expect you to, it's just that somebody else here might do it without asking
18:05 est31 Add print("The object is: " .. dump(minetest.get_mapgen_object("voxelmanip"))) to init.lua
18:06 celeron55 there are many c++-to-lua interfaces in this thing and for some reason they are different
18:06 est31 should throw a LuaError if the commit d69ef6acd386ccfd5ff456002591b97b92a26956 is included
18:06 celeron55 for example script/cpp_api/s_entity.cpp and script/cpp_api/s_env.cpp handle errors differently
18:07 celeron55 this error that i added is thrown when ScriptApiEntity::luaentity_Step is being executed
18:09 celeron55 est31: that error comes through a different path
18:09 celeron55 it doesn't even touch the LuaError handler in ServerThread::run() where I had to add this
18:10 celeron55 same thing if you add that line in the global step callback
18:11 est31 okay, it should run inside a chatcommand, shouldnt it
18:12 est31 bc in theory, the chat command bases on an incoming chat packet
18:12 est31 which is handled by m_server-Receive();
18:13 celeron55 wait, actually
18:13 * est31 testing
18:13 celeron55 luajit does print a backtrace for LuaErrors in ScriptApiEntity::luaentity_Step
18:13 celeron55 but lua does not
18:14 celeron55 yes, that's the issue here; i just confirmed
18:14 est31 okay what about surrounding it with if USE_LUAJIT
18:15 est31 or USE_LUA_JIT
18:15 est31 dunno, perhaps ShadowNinja has changed it
18:16 celeron55 oh so the way LuaJIT handles exceptions is that it calls this
18:16 celeron55 script_exception_wrapper
18:16 celeron55 well regular lua handles exceptions like you had called regular C++ code
18:17 celeron55 the lua stuff just rewinds out of the way like any code would
18:17 celeron55 which the JITted stuff is unable to do i guess then
18:18 est31 I think it is able to do it
18:19 celeron55 i think it was long our problem that we didn't print out backtraces for exceptions when luajit was used
18:19 celeron55 which i guess was because nobody had found that script_exception_wrapper thing for luajit
18:20 est31 http://luajit.org/extensions.html scroll down there you find, its platform dependent support
18:21 est31 perhaps a few years ago there was no support
18:21 luizrpgluiz left #minetest-dev
18:21 est31 now there is partial support
18:21 celeron55 why is script_exception_wrapper then used?
18:22 celeron55 well i guess for x86 support
18:22 est31 to work on the platforms luajit doesn'T support? just a wild guess though
18:24 celeron55 the thing is, there is no way to integrate this neatly; exceptions have to be catched where exceptions occur and there is no way around it
18:25 celeron55 i.e. in every thread there must be a catch(LuaError) with a call to augment it with a backtrace if lua is being used
18:26 celeron55 well, every thread that runs lua, that is
18:26 est31 makes sense
18:26 celeron55 luajit errors are also converted to LuaErrors and need the same handler
18:27 est31 but there we get the stack trace from the handler func, so we don't need to generate it again
18:27 celeron55 but they already include the backtrace because... i guess luajit calls the regular error handling mechanisms before that
18:31 Puka_ joined #minetest-dev
18:44 paramat joined #minetest-dev
18:45 paramat hi nore what's your opinion on game#665 ?
18:45 ShadowBot https://github.com/minetest/minetest_game/issues/665 -- Add many wooden fences made out of the 4 kinds of woods by LeMagnesium
18:47 celeron55 i'll try to come up with a reasonable way to do this
18:48 paramat hmmmm #3324 is ready for review
18:48 ShadowBot https://github.com/minetest/minetest/issues/3324 -- Mapgen: Add watershed mapgen in hidden development form by paramat
18:48 hmmmm ok, i'll have to take a look
18:49 hmmmm in any case...
18:49 hmmmm committing https://github.com/kwolekr/minetest/commit/52e5b513ed9dc143c967c733423fe751e1b663d1 in 30 minutes unless anybody has an objection
18:49 est31 okay for me but isnt this too large for the 30 mins thing
18:49 hmmmm :|
18:49 hmmmm I'm really getting tired of waiting around
18:49 est31 (okay for me as in +1)
18:49 paramat we don't have pumpkins but could have cact-o-lanterns =}
18:50 hmmmm speaking of waiting around
18:50 hmmmm est31, why are you still waiting on the ncurses console PR?
18:50 hmmmm what is the holdup precisely
18:50 est31 approval missing
18:50 hmmmm oh my god
18:50 est31 or has kahrl +1ed
18:50 hmmmm we had 3 or 4 separate people look at it
18:50 hmmmm why does it have only 1 +1
18:50 hmmmm maybe kahrl did +1
18:54 hmmmm anyway I want to commit https://github.com/celeron55/minetest/commit/1fcea9112b7f5fef520434ec2ae5269ea8864242 but there are a couple issues holding it back imho
18:55 hmmmm celeron said he doesn't intend for this to be committed upstream, so I'm assuming this implies he's not willing to do any additional work/changes
18:55 hmmmm does somebody want to make a new PR with the functional changes or modify this commit?
18:57 celeron55 oh that one
18:58 celeron55 i think that commit is pretty much fine unless someone wants to tweak the style first
18:58 hmmmm first off, if there's already a function provided by the standard to do something, you need to use that instead of redefining it
18:58 hmmmm so util_isnan -> isnan
18:58 celeron55 i've had issues trying to use isnan in the past
18:58 hmmmm second, there's a lot of repetition
18:59 hmmmm if there is a problem with isnan, then make a comment about it
18:59 hmmmm / Here I defined my own util_isnan() because there are the following problems with the standard library's isnan() on platforms X Y Z: ...
18:59 hmmmm //*
19:00 celeron55 bleh; just edit it however you see fit; i don't even remember what the issues were anymore nor on which platforms i was trying to run code back then
19:00 celeron55 so i'm just as good as you
19:00 hmmmm well now you have me worried
19:00 celeron55 i'll be wrestling with this other issue now, i'll come back to that later
19:02 celeron55 one sure-fire way to find out is to just commit it using isnan or std::isnan and see what happens 8)
19:03 hmmmm oh god:  https://github.com/opal/opal/issues/941
19:03 hmmmm remind me to lock and perma-delete any issues like this that pops up on our github
19:04 celeron55 don't worry, i'll lock and perma-delete them myself if i see them
19:04 celeron55 those people are utterly crazy, why would they even attempt to discuss that
19:05 hmmmm they try to be the bigger person and discuss things on their merit.  i don't think they realized it's like playing chess with pidgeons
19:06 luizrpgluiz joined #minetest-dev
19:09 celeron55 when discussing on the internet, it's very important to realize when you are playing chess with pidgeons
19:14 luizrpgluiz left #minetest-dev
19:15 srakitnican joined #minetest-dev
19:16 celeron55 somebody needs to do a grep 'MutexAutoLock(' on the whole codebase and fix all those mess-ups
19:17 hmmmm oh fuck
19:17 celeron55 that's always a bug unless it's prefixed with "new"
19:17 hmmmm great job est, you did the same thing with getTimeOfDay
19:18 ElectronLibre joined #minetest-dev
19:18 celeron55 maybe we should have a static checker that would check trivialities like this
19:18 hmmmm it's a time investment
19:19 celeron55 it would make sense if there were like more than five things to check
19:19 celeron55 CI likes such things
19:20 est31 isnt new a leak?
19:20 celeron55 a leak? well it's a heap allocation
19:20 celeron55 it's not how you fix those
19:20 hmmmm in fact I don't recall reviewing the timeOfDay patch
19:21 hmmmm who exactly signed off on ca8e56c
19:23 celeron55 looks like nobody
19:23 celeron55 https://github.com/minetest/minetest/pull/3297
19:23 hmmmm so est looks like he further propogated the error
19:23 hmmmm and same with nerzhul here https://github.com/minetest/minetest/commit/7f8f9785d7e9e120a6708d2f51e32dfef3e50c19
19:23 est31 I've just renamed
19:23 hmmmm no, I see you added some
19:24 est31 well its wrog fine should i fix it
19:24 hmmmm who is this first one to introduce this horrifying mistake
19:25 hmmmm https://github.com/minetest/minetest/commit/f6fc39e69a0a621480bec9ceafd154ec83cf0100
19:25 hmmmm fuckin sapier dude
19:25 hmmmm he sure "fixed" that race condition
19:25 hmmmm do you see why we need review
19:25 hmmmm competence also helps a lot
19:26 celeron55 looks like it's our lovely friend sapier
19:26 celeron55 in f6fc39e6
19:26 celeron55 "fix race condition" lol
19:26 rubenwardy capped under c, not at. physical bodies can't move at c
19:26 celeron55 i have learned to love commits that start with "Fix"
19:26 rubenwardy oops
19:26 celeron55 it generally means it's more like a regression than a fix
19:26 rubenwardy that was ages ago, my log was scrolled up
19:28 hmmmm look I get that we're not writing flight control software here but it doesn't hurt to make sure things work
19:31 semirocket joined #minetest-dev
19:33 semirocket left #minetest-dev
19:34 hmmmm I think the fix for this should replace the locking with atomics, since, you know, we have that now
19:35 nrzkt hmmmm, tested in a branch std::atomic is working well
19:39 est31 I still think atomics wont work for tim
19:39 est31 time
19:39 est31 bc the calculations are too complex
19:39 est31 its not just simple get -> add -> put back
19:39 est31 there are multiple variables
19:40 est31 and e.g. setting time + step could confuse
19:40 est31 but I dont really care if it gives wrong time then so be it, its just time
19:40 est31 nothing important
19:40 est31 as long as it doesnt crash or so
19:40 celeron55 https://github.com/celeron55/minetest/commit/54af0cbc96a308a6eb5400bdddda71e66bb082f8
19:42 est31 looks good
19:42 celeron55 if somebody would care to test this, that would be nice
19:42 est31 havent given it a too close look though
19:43 celeron55 (which is, find a case where without this there was not a backtrace with regular Lua and see what happens when this is applied)
19:44 celeron55 i'm doing some testing myself but it's never the same to test something yourself as it is for someone else to test it
19:46 Player2 joined #minetest-dev
19:55 Miner_48er joined #minetest-dev
20:11 johnnyjoy joined #minetest-dev
20:11 ElectronLibre joined #minetest-dev
20:12 johnnyjoy joined #minetest-dev
20:16 johnnyjoy joined #minetest-dev
20:20 paramat left #minetest-dev
21:02 Darcidride joined #minetest-dev
21:12 H-H-H joined #minetest-dev
21:23 hmmmm hmm
21:24 hmmmm clang 3.8 does something with floating point numbers in collisionMoveSimple that makes the player freeze up
21:30 rubenwardy joined #minetest-dev
21:39 hmmmm seems to happen when one of the parameters becomes -0.0
21:44 celeron55 what happens if you toggle some math-related flags of the compiler
21:44 hmmmm no idea, i'm trying to find the source of the problem firstg
21:51 hmmmm this is infuriating
21:51 hmmmm i need to be able to debug more than ever but i can't debug at all because it needs to be optimized
21:51 celeron55 uh wtf
21:52 celeron55 why does the command line interface of minetest have timestamps and thread information prepended on each line?
21:52 celeron55 this is bad style and useless
21:52 JohnnyComeL8ly joined #minetest-dev
21:52 hmmmm because shadowninja thought it was cleaner that way
21:52 celeron55 well what the fuck; i explicitly made it NOT this way because this is crap
21:53 celeron55 sigh
21:53 hmmmm fwiw i fought back against it and ended up losing
21:53 hmmmm :|
21:53 celeron55 why am i letting ShadowNinja change this
21:53 celeron55 i should just make everyone have their own fork of minetest again
21:54 hmmmm any time there's a commit that starts with the word "Cleanup" you can rest assured it's going to have tons of unpopular changes as riders
21:59 celeron55 i guess my hobby has become reversing stupid changes in minetest
21:59 celeron55 reverting*
22:00 celeron55 (i'm also good at writing slightly incorrect english)
22:00 hmmmm since when is a typo incorrect english?
22:01 celeron55 that's not a typo
22:03 paramat joined #minetest-dev
22:03 celeron55 it seems that the only thing in minetest that gives direct responses to command line arguments is --help
22:04 celeron55 so it's the only thing that has to be printed to std::cout and nothing else
22:04 celeron55 oh, no; "--world list" also
22:05 celeron55 ...aand --version
22:06 celeron55 and --gameid list
22:07 hmmmm STFU and fix it then :-)
22:07 hmmmm better yet; complain to ShadowNinja
22:07 celeron55 i think that's all; i already changed them locally, now i only need to commit this
22:07 hmmmm he's the one making all the "Cleanup" commits
22:07 hmmmm 3000 lines changed, 71 files
22:08 hmmmm okay bbl
22:08 celeron55 i think i'll be an asshole and just push this to upstream
22:13 est31 I guess it'll conflict my ncurses branch but i'll just rebase
22:15 est31 and 5 bugs introduced
22:16 celeron55 http://stackoverflow.com/questions/2249110/how-do-i-make-a-portable-isnan-isinf-function
22:16 celeron55 this is the thing that i was concerned about in using isnan()
22:16 est31 lets use boost
22:17 celeron55 lol
22:17 est31 gregorycu will like it
22:17 celeron55 std::isnan is what i have been personally using in other projects
22:17 celeron55 it seems to be the best bet but i think it's officially c++11?!
22:18 celeron55 overally even bothering to think about this is stupid; that's why i just made a macro
22:19 celeron55 i guess i'll add a comment noting this issue and then somebody can handle it some day if it really matters
22:21 celeron55 (it doesn't; but whatever)
22:29 PilzAdam celeron55, can also revert the behavior that debug.txt is created in the current directory, rather then in bin?
22:29 PilzAdam (for RUN_IN_PLACE)
22:29 PilzAdam basically every folder on my machine contains a debug.txt now since I start minetest from random places
22:31 celeron55 eh
22:31 celeron55 why was that done?
22:32 PilzAdam because "cleanup" by ShadowNinja
22:32 PilzAdam apparently "cleanup" means change lots of functionality, I guess?
22:32 celeron55 well fuck cleanup by shadowninja, why is that even a thing
22:33 celeron55 why aren't you opposing these things
22:34 celeron55 i have to say though that so far i haven't had any issues with this debug.txt positioning; but i didn't have any issues with the previous way either
22:34 PilzAdam well, 80% of it is good refactoring
22:34 est31 70%
22:34 PilzAdam but nobody can test all stuff and see if it changes functionality
22:34 est31 there is bad refactoring too
22:35 celeron55 why don't you change them back then when you find them
22:35 est31 usually thats done
22:35 PilzAdam nobody care enough, I guess
22:35 celeron55 i'm going to leave that to PilzAdam; i don't personally care about this one
22:37 PilzAdam I think the problem is that ShadowNinja writes these huge changes completely alone without notifying people beforehand
22:38 celeron55 i'm guessing the refactoring is mostly good but people have to be attentive about these things
22:38 est31 and some of his cleanups really are questionable
22:38 PilzAdam they are hard to review, but also hard to change since ShadowNinja already invested a lot of work
22:38 est31 e.g. he removes an id management function
22:38 est31 because i guess its "too complicated"
22:38 celeron55 what
22:38 est31 the replacement however doesnt even handle overflows
22:39 est31 but fortunately he fixed it
22:39 kahrl celeron55: I think you missed --videomodes
22:39 PilzAdam maybe we should create some rules that refactoring commits should only do refactoring
22:39 est31 #3309
22:39 ShadowBot https://github.com/minetest/minetest/issues/3309 -- AreaStore cleanup by ShadowNinja
22:39 celeron55 PilzAdam: maybe, just maybe that rule is common sense?
22:39 est31 The PR title is a bit misleading, its not just cleanup, it also changes features
22:39 celeron55 can all of us agree that refactoring being only refactoring is common sense?
22:44 celeron55 i think this area stuff isn't as bad as est31 makes it sound like
22:45 celeron55 altough, that's no reason to not continue reviewing it
22:47 Darcidride joined #minetest-dev
22:47 celeron55 kahrl: i'm not going to touch it because it's implemented in such a weird place
22:48 celeron55 for no good reason, too
22:50 kahrl true
22:51 kahrl it causes a separator to be added to debug.txt when you list videomodes
22:51 kahrl (even when you change dstream to std::cout)
22:56 kahrl ugh
22:56 kahrl print_video_modes uses stuff from g_settings, which is initialized during init_common which also initializes logging
22:56 kahrl so what I said is basically unavoidable
23:01 kahrl I'd just do https://gist.github.com/kahrl/6686521d7decf1f43ac0  and call it done
23:01 kahrl will merge ^ in an hour
23:02 celeron55 oh whatever, it's not like this is worth our time at all to begin with
23:02 est31 btw kahrl have you tested my console yet
23:02 kahrl est31: nah, didn't have time yet
23:06 JohnnyComeL8ly est31: I tried to try your ncurses console... but I got these errors.
23:06 JohnnyComeL8ly http://pastie.org/10521270
23:06 JohnnyComeL8ly http://pastie.org/10523110
23:07 JohnnyComeL8ly If you need a whole output of the thing, I could definitely do that too.
23:07 est31 yes I need the whole output
23:07 est31 the first thing is unrelated
23:09 JohnnyComeL8ly est31: Oh, ok, well here it is. http://pastie.org/10523120
23:13 kahrl JohnnyComeL8ly: what's the linker command line? You can see it with: make VERBOSE=1
23:13 kahrl (below the line "Linking CXX executable ../bin/minetestserver")
23:14 est31 JohnnyComeL8ly, which distro are you on
23:14 JohnnyComeL8ly est31: I'm using Xubuntu 15.10.
23:17 JohnnyComeL8ly http://pastie.org/10523133
23:18 JohnnyComeL8ly kahrl: est31: ^^
23:18 est31 It should link to libncursesw instead of libncurses
23:19 est31 JohnnyComeL8ly, can you fork again and recompile?
23:19 JohnnyComeL8ly So, I need to install that?
23:19 JohnnyComeL8ly "fork" ?
23:19 est31 no, ncursesw comes with ncurses these days
23:19 est31 ermm clone
23:19 JohnnyComeL8ly I don't know where to clone from... and I don't know how to just get branches.
23:20 est31 well, delete the minetest directory and get the source code again
23:20 est31 have you tried that
23:20 JohnnyComeL8ly (I tried yesterday... ended up getting the archive from github.)
23:20 JohnnyComeL8ly I'll use the same archive.
23:24 kahrl JohnnyComeL8ly: what's the output of 'ncurses5-config --libs'?
23:24 kahrl JohnnyComeL8ly: and 'ncursesw5-config --libs'?
23:25 JohnnyComeL8ly Just a sec.
23:27 JohnnyComeL8ly -lncurses -ltinfo   and   -lncursesw -ltinfo   respectively.
23:27 kahrl ah ok
23:27 kahrl I think it would work if the cmake module FindCurses.cmake (which comes with cmake) was used
23:30 JohnnyComeL8ly I'm going to try without telling them where they are.
23:31 kahrl ah no, FindCurses.cmake doesn't do ncursesw
23:31 kahrl est31: would it be possible to use ncurses instead of ncursesw?
23:32 JohnnyComeL8ly So, I need to do what?
23:32 * est31 is german, no way to not let me write äüöß
23:32 kahrl est31: utf-8?
23:32 est31 insert not
23:32 JohnnyComeL8ly I just finished installing libncursesw5-dev if that helps.
23:33 kahrl JohnnyComeL8ly: your system is fine, minetest's CMakeLists.txt is broken
23:33 JohnnyComeL8ly How do I fix it?
23:33 kahrl not sure yet
23:36 JohnnyComeL8ly Hehey! installing libncursesw5-dev made the trip!  I didn't have to specify the location of ncursesw.
23:38 kahrl hrmm, that's weird
23:38 kahrl build is always weird
23:39 proller joined #minetest-dev
23:40 JohnnyComeL8ly That is something to take note of... that way nobody else has to figure out (by chance) that libncursesw5-dev is necessary.
23:42 kahrl that's not the solution; the solution is to fix CMakeLists.txt
23:42 JohnnyComeL8ly Ah, yes;  you are right.
23:43 kahrl at the moment it's broken. The correct thing that it should is: either (a) determine that ncurses can't be used, or (b) determine that it can be used, in which case the linking command must not fail
23:43 kahrl that it should do
23:43 est31 agreed
23:44 JohnnyComeL8ly So, something like line 58 of the CMakeLists.txt should be in place to check for libncursesw5-dev ?
23:45 JohnnyComeL8ly "find_package(Irrlicht)"
23:47 kahrl yes, but
23:47 kahrl you can do find_package(Curses), but it will only find libncurses.so, not libncursesw.so
23:48 kahrl see: https://cmake.org/Bug/view.php?id=10347
23:48 JohnnyComeL8ly There were only two find_package instances in the CMakeLists.txt .
23:49 kahrl hmm? I see tons of them
23:49 JohnnyComeL8ly Well, the one I got in est31's fork is this way. :-)
23:49 kahrl oh, look at src/CMakeLists.txt, not CMakeLists.txt
23:50 JohnnyComeL8ly I see....
23:52 JohnnyComeL8ly Btw, it compiled all the way.

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