Minetest logo

IRC log for #minetest-dev, 2015-07-16

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

All times shown according to UTC.

Time Nick Message
00:51 stormchaser3000 joined #minetest-dev
01:19 blaise joined #minetest-dev
01:20 kahrl_ joined #minetest-dev
01:37 hmmmm joined #minetest-dev
01:47 blaise joined #minetest-dev
01:55 asl97 joined #minetest-dev
02:53 werwerwer joined #minetest-dev
03:06 Etzos joined #minetest-dev
04:38 stormchaser3000 joined #minetest-dev
05:20 leat1 joined #minetest-dev
05:41 leat1 joined #minetest-dev
05:46 Hunterz joined #minetest-dev
05:52 blaise joined #minetest-dev
05:59 Zeno` joined #minetest-dev
06:00 Zeno` est31, I updated my comment (just in case you missed it) ;)
06:00 Zeno` just checking the std now, but I'm 99.999999% positive bitshifts on signed numbers are implementation-defined
06:00 nrz Hey Zeno :D
06:01 Zeno` hi. been a while :D
06:01 nrz of course :)
06:01 Zeno` hehe, ok, left shifts are undefined behaviour
06:02 nrzkt joined #minetest-dev
06:02 nrzkt better like this :)
06:02 Zeno` :P
06:02 Zeno` how's things?
06:03 est31 hey Zeno`
06:03 est31 so what do you think should be done about it
06:03 est31 also, do you like the feature at all
06:03 est31 paramat didnt
06:04 chchjesus_ joined #minetest-dev
06:05 Zeno` est31, I guess I'd cast them to u64 before shifting
06:05 Zeno` it's just to get a unique number, right?
06:05 Zeno` number/seed
06:05 est31 yes
06:06 Zeno` yeah, I doubt the undefined behaviour matters in that case but I'd cast anyway
06:06 Zeno` (for the sake of "properness" heh)
06:06 Zeno` I don't mind the feature btw
06:09 Zeno` I've also changed my mind. Bitshifts are the clearest way to do what you're doing
06:09 nrzkt u64 should be used for every unique ID
06:11 hmmmm undefined?
06:12 Zeno` hmmmm, yes
06:12 hmmmm I thought the operation forces them to implicitly convert to an unsigned type
06:12 Zeno` apparently not
06:12 Zeno` 6.5.7
06:12 Zeno` para 4
06:12 hmmmm is this from the C++ spec or C spec
06:13 hmmmm i've been noticing subtle differences between the two in regard to type promotion and conversion
06:14 Zeno` C
06:14 Zeno` umm, I don't think there's a difference there... but
06:14 Zeno` looking
06:15 Zeno` the C++ standard says that if anything isn't mentioned than the C standard applies
06:15 Zeno` still looking...
06:15 est31 hmmmm, what do you think about the feature
06:16 hmmmm what feature
06:16 Zeno` yep undefined
06:16 Zeno` 5.8.2
06:17 hmmmm heh good to know
06:17 est31 the one i add in #2910
06:17 ShadowBot https://github.com/minetest/minetest/issues/2910 -- Treegen: Add enable_unique_ids option by est31
06:17 hmmmm although I don't think I ever do bit operations on signed types to begin with
06:17 hmmmm out of principle
06:17 Zeno` it's only undefined if the value is actually negative though
06:18 hmmmm aren't enum values implicitly signed?  i.e. enum values defined with (1 << n) are relying on undefined behavior
06:18 Zeno` Otherwise, if
06:18 Zeno` E1
06:18 Zeno` has a signed type and non-negative value, and
06:18 Zeno` E1
06:18 Zeno` ×
06:18 Zeno` 2
06:18 Zeno` E2
06:18 Zeno` is representable
06:18 Zeno` in the corresponding unsigned type of the result type, then that value, converted to the result type, is the
06:18 hmmmm ahh okay
06:18 Zeno` resulting value; otherwise, the behavior is undefined
06:18 Zeno` shit
06:18 Zeno` didn't know it'd do that
06:18 hmmmm fwiw I absolutely can't stand it when people misuse enum
06:19 hmmmm using enum as set of flags
06:19 hmmmm using enum to define a constant integer value
06:21 Zeno` I use 1U << :)
06:21 Zeno` but probably not in an enum
06:21 Zeno` #define usually
06:22 est31 isn't enum meant to supersede #define ??
06:22 hmmmm absolutely not
06:22 est31 i mean for that usecase
06:22 hmmmm not for flag-types, no.
06:25 est31 I have mixed enums and flags a *bit* for srp
06:25 est31 the server sends a list of supported auth protocols as a flagbyte
06:25 est31 then the client decodes it, and choses one auth mechanism
06:26 est31 that is then stored as enum
06:26 hmmmm that is fine
06:26 hmmmm selecting one option of numerous
06:26 hmmmm storing numerous options... is not fine
06:27 hmmmm an enum is supposed to be a data type where only those enum options are the possible values
06:27 hmmmm it may be undefined behavior to attempt to store a value not part of an enum into an enum
06:27 Zeno` pretty sure it *is* undefined
06:27 hmmmm but at the very least, you lose the advantage in debugging
06:29 kahrl_ the C++ standard defines enumeration types in terms of their underlying integral type
06:29 kahrl_ so I'm pretty sure using them as flags is legal
06:30 Zeno` but, hmmmm, you could have enum { BLAH = 1U << 0; FOO = 1U << 1; BLAH_AND_FOO = 1U << 0 & 1U << 1; } I suppose
06:30 hmmmm the underlying integral type's only assurance is that it's convertable to int, no?
06:30 nore joined #minetest-dev
06:30 Zeno` I think what hmmmm is saying is that you should store the byte flags (combined) in the enum
06:30 hmmmm which means you don't have any hard guarantees on how many options you can fit beyond 16
06:30 hmmmm or rather, 15 :)
06:30 Zeno` which I'd agree with
06:31 Zeno` hmm
06:31 Zeno` I'm confused by what's being said now, lol
06:31 hmmmm Zeno`: yes, you can have that.  but specifying each and every combination defeats the purpose of flags
06:31 Zeno` hmmmm, should NOT* store the byte flags (combined)
06:31 hmmmm right
06:32 Zeno` yeah, that would seem like abuse of the enum
06:33 hmmmm hmm
06:33 Zeno` I've never seen code that does that though I don't think
06:33 hmmmm i can't find my C++11 spec
06:33 hmmmm I have...
06:33 hmmmm it's horrifying because the people who do that believe they are so clever
06:33 hmmmm "look at all these high level C++ constructs I am using!"
06:33 chchjesus_ left #minetest-dev
06:34 kahrl_ hmmmm: http://paste.debian.net/282818/
06:34 kahrl_ see 6. specifically
06:34 hmmmm nice
06:36 RealBadAngel joined #minetest-dev
06:37 Zeno` kahrl_, you don't agree that it would be bad form to write something like....  MyEnumType flags = ENUMA | ENUMB;
06:37 Zeno` I don't like that much at all. heh
06:38 kahrl_ does that even work? wouldn't you have to define an operator| first?
06:38 Zeno` no sure
06:38 Zeno` not*
06:38 kahrl_ like in http://stackoverflow.com/a/1448478
06:39 Zeno` http://codepad.org/Vp3YVtdF
06:39 Zeno` heh
06:42 kahrl_ ugh, how do I tell github markdown to not change tabs to spaces in a code block
06:42 hmmmm yuck
06:43 kahrl_ I guess I'll have to upload my tiny patch as a gist or commit
06:43 hmmmm nobody has tried this so far but would you agree to banning enum-flags?
06:43 Zeno` it works fine now that I've cast the expression
06:43 Zeno` kind of ugly though lol
06:44 Zeno` fully conforming and elegant: http://codepad.org/tjzhmeys
06:45 hmmmm hm i'm surprised you don't need to cast A and B to int first
06:46 Zeno` http://codepad.org/na6MkM2E
06:46 Zeno` I am guessing you can't actually use bitwise operators on enum values
06:46 Zeno` ?
06:46 Zeno` I never knew that. Probably because it never occurred to me to try it
06:47 hmmmm no
06:47 hmmmm you can
06:47 hmmmm look you're doing it with A and B the line above
06:47 Zeno` you can, but not assign them back to the enum
06:47 hmmmm the error is converting it back to blah
06:47 Zeno` yeah
06:47 Zeno` so you'd have to jump through hoops to do the ugliness anyway
06:47 hmmmm right.
06:47 hmmmm so anyway
06:48 hmmmm if you do this, it might be valid C++, but you lose all advantages of enums in debugging
06:48 Zeno` interesting diversion for 30 minutes :)
06:48 hmmmm and then there's the uglyness
06:48 hmmmm the only people who would write code like this are those holier-than-thou language "experts"
06:48 hmmmm you know the ones i mean
06:50 Zeno` haha :)
06:50 Zeno` Linus
06:51 Zeno` lol, just kidding
06:51 Zeno` I had a program once.. an expression parser thing
06:51 Zeno` wonder what I did with it
06:51 leat1 joined #minetest-dev
06:52 Zeno` kahrl_, you wrote it?
06:52 Zeno` yikes! Time! bbl
06:52 Zeno` cyas on the flipside
06:57 Player_2 joined #minetest-dev
06:58 blaise joined #minetest-dev
06:59 RealBadAngel joined #minetest-dev
07:04 Krock joined #minetest-dev
07:41 est31 opinions on #2916
07:42 ShadowBot https://github.com/minetest/minetest/issues/2916 -- Use Z-order curves? Or split up the coordinates?
07:43 crazyR joined #minetest-dev
07:43 crazyR joined #minetest-dev
07:45 blaise joined #minetest-dev
07:47 kilbith joined #minetest-dev
07:52 kilbith left #minetest-dev
07:54 crecca joined #minetest-dev
08:00 Yepoleb_ joined #minetest-dev
08:12 leat1 joined #minetest-dev
08:52 Darcidride joined #minetest-dev
08:53 blaise joined #minetest-dev
09:13 Calinou joined #minetest-dev
09:33 Amaz joined #minetest-dev
09:36 WSDguy2014 joined #minetest-dev
09:37 WSDguy2014 left #minetest-dev
09:41 Taoki joined #minetest-dev
09:46 jin_xi joined #minetest-dev
09:48 Fritigern joined #minetest-dev
09:51 VanessaE another backtrace added to #2913
09:51 ShadowBot https://github.com/minetest/minetest/issues/2913 -- Unexplained, random crashes (segfaults, aborts, OOM)
09:52 est31 VanessaE, fix the formating
09:52 VanessaE oops
09:52 est31 well this line the lines are broken at least
09:52 VanessaE fixed.
09:52 VanessaE forgot to wrap the paste in ``` ```
09:53 WSDguy2014 joined #minetest-dev
09:54 WSDguy2014 left #minetest-dev
09:55 est31 first it crashed at the deallocation of a SharedBuffer, now it cries at the allocation of a SharedBuffer.
09:55 est31 the first one was an assertion failure
09:55 est31 whats this
09:55 WSDguy2014 joined #minetest-dev
09:55 WSDguy2014 left #minetest-dev
09:57 VanessaE beats me, this last one didn't even allow the engine to throw a "shutting down..." message to clients
10:06 nrzkt you should find which SharedBuffer is used and why it's misused
10:06 est31 nrzkt, you are the network guy
10:07 nrzkt SharedBuffer is not used in network
10:07 est31 #6 0x00000000005fbaa6 in con::ConnectionReceiveThread::receive (this=0x7fffffffe438) at /home/minetest/minetest_core/src/network/connection.cpp:2099
10:08 nrzkt i miss this line, sorry.
10:08 nrzkt I'm at work i cannot look at this atm
10:09 nrzkt and kicking player on shutdown is not a role of a mod. Mod is an extension for the core. Core doesn't need to be extended for kicking player at shutdown, it's a core normal function.
10:09 est31 nrzkt, if we dont kick players on a crash the feature is half assed and we don't meet user's expectations
10:10 nrzkt the crash issue should be avoided by using a ping packet function
10:10 est31 mods can do this stuff already, and no need for c++ on this
10:10 est31 if there werent the crash issue, i would even have agreed it being in lua
10:10 nrzkt proper shutdown should be handled by core, kicking all player before unallocating everything
10:11 est31 yes, thats ok, but only if together when we look for a crash
10:12 est31 also kicking should only be done for players using the legacy protocol
10:12 nrzkt why ?
10:12 est31 because ERROR: ACCESS DENIED is bad
10:13 est31 or ERROR:ACCESS DENIED. REASON: KICKED: REASON: SERVER SHUTTING DOWN
10:13 est31 instead it should read SERVER SHUTTING DOWN
10:13 nrzkt right
10:14 est31 so we need a proper "TOCLIENT_SERVER_SHUTDOWN" packet
10:14 est31 or however its named
10:15 nrzkt agree with this.
10:15 nrzkt but what does kick player function ?
10:15 nrzkt ACCESS DENID ?
10:15 nrzkt because it remove the datas and then the UDP socket doesn't work ?
10:15 est31 yes, it shows that in the client last time i checked
10:16 nrzkt okay i see
10:16 nrzkt for legacy we don't have choice
10:16 est31 if i see a way to do it, I will change it to "you have been kicked", ok?
10:16 TBC_x better would be Disconnected fom server\nKicked: $REASON and Disconnected from server\nServer shutdown
10:17 TBC_x rather than adding specialized packet IMHO
10:17 nrzkt i think the TOCLIENT_SERVER_SHUTDOWN is a good idea, and this packet show the connection error screen and close properly resources clientside
10:17 nrzkt or better
10:17 nrzkt TOCLIENT_KICK
10:17 TBC_x so string like Disconnected from server\n$CUSTOM_STRING
10:18 nrzkt with a u8 REASON std::string custom_string
10:18 est31 ah i see
10:18 nrzkt like in the new error message at connection,
10:18 est31 TBC_x, remember that the message is the same for wrong password and kicks
10:18 nrzkt u8 reason => classic messages, which can be translated
10:19 FR^2 joined #minetest-dev
10:19 nrzkt and reason == KICKREASON_CUSTOM we read string
10:20 nrzkt then, mods can kick with a custom reason :)
10:21 TBC_x that makes sense
10:23 nrzkt okay then
10:24 nrzkt est31, are you hot to code this, or minetest will wait for my PR in next days ? :)
10:28 est31 nrzkt, take your time, and make it properly
10:32 nrzkt i propose first, to add the function to kick players with the current method at shutdown
10:32 nrzkt and next, the new function
10:33 VanessaE wtf guys?
10:33 VanessaE are you insane?
10:33 VanessaE telling the player they've been KICKED?
10:33 VanessaE no
10:33 VanessaE that's a flat out NO
10:33 VanessaE players think kick -- ban
10:33 VanessaE ==
10:34 nrzkt if you ban, tell them you ban
10:34 nrzkt :p
10:34 VanessaE it should show one and ONLY one thing to the client:  "Disconnected -- server shutting down... or similar.
10:34 VanessaE nrzkt: it doesn't work that way in a production server.
10:34 VanessaE ANY kick, to a user, looks like a ban
10:34 VanessaE even if you expressly tell them it's not a ban
10:35 est31 VanessaE, you should comment on #2845
10:35 ShadowBot https://github.com/minetest/minetest/issues/2845 -- Kick players on server shutdown by red-001
10:35 nrzkt VanessaE: we are talking technically there.
10:36 nrzkt the message is a futile string, KICK is a technical word there
10:36 nrzkt Server Shutdown is the message shown to client.
10:36 VanessaE nrzkt: yes and when you send a kick command to the client, it's gonna tell the user they've been kicked.
10:36 nrzkt KICK is generic for our packet
10:37 nrzkt we will not create a packet to kick and a packet to shutdown server
10:38 nrzkt it's the same way to handle it on client
10:38 TBC_x Wouldn't it be better to replace bools with enums in void Client::addUpdateMeshTaskWithEdge(v3s16 blockpos, bool ack_to_server, bool urgent) and such?
10:39 est31 ??
10:39 VanessaE est31: commented.
10:39 TBC_x because addUpdateMeshTaskWithEdge(i->first, false, true) won't tell much
10:40 est31 so you want to do what instead?
10:40 nrzkt thanks VanessaE
10:40 TBC_x addUpdateMeshTaskWithEdge(i->first, NO_ACK, URGENT) for example
10:40 est31 meh, rather no
10:40 TBC_x you know what it means without looking up the definition
10:40 est31 yea has a charme
10:41 est31 but you have to define the enum somewhere
10:41 est31 you will have to think of a nice name for the enum
10:41 est31 then how do the checking?
10:41 est31 If urgency_level == URGENT then
10:41 est31 thats bad
10:41 est31 the user has to look up the enum instead
10:42 TBC_x good point
10:42 est31 what if there is SUPER_URGENT, and URGENT is the "less urgent" one?
10:44 VanessaE sorry to be a hard-ass with my comments here, but I have to deal with total idiot users on an continuous basis, so whatever message is sent to the client, it must be user-friendly above all else.
10:45 TBC_x hmm... namespace Bool { enum Urgent } could solve that
10:46 TBC_x or just use const bool URGENT = true
10:46 est31 ah dude
10:47 TBC_x hehe
10:51 blaise joined #minetest-dev
11:00 est31 joined #minetest-dev
11:01 proller joined #minetest-dev
11:04 est31 rebased #2885, nrzkt would be perhaps good to have network maintainer have a look at it
11:04 ShadowBot https://github.com/minetest/minetest/issues/2885 -- Utf8 based chat by est31
11:04 proller joined #minetest-dev
11:12 FR^2 left #minetest-dev
11:12 stormchaser3000_ joined #minetest-dev
11:32 twoelk joined #minetest-dev
11:42 proller joined #minetest-dev
11:48 Hunterz joined #minetest-dev
11:54 OldCoder joined #minetest-dev
12:08 Darcidride_ joined #minetest-dev
12:11 Darcidride joined #minetest-dev
12:20 Sokomine_ joined #minetest-dev
13:22 proller joined #minetest-dev
13:24 leat2 joined #minetest-dev
13:35 leat2 joined #minetest-dev
13:35 H-H-H joined #minetest-dev
14:01 rubenwardy joined #minetest-dev
14:08 amadin1 joined #minetest-dev
14:23 Darcidride joined #minetest-dev
14:23 Megaf joined #minetest-dev
14:59 kilbith joined #minetest-dev
14:59 kilbith left #minetest-dev
15:12 proller joined #minetest-dev
15:18 hmmmm joined #minetest-dev
15:19 rubenwardy joined #minetest-dev
15:26 Hunterz joined #minetest-dev
15:28 stormchaser3000_ joined #minetest-dev
15:33 blaise joined #minetest-dev
15:40 FR^2 joined #minetest-dev
15:42 nrzkt VanessaE crazyR: https://github.com/minetest/minetest/pull/2918
15:42 nrzkt i push it in 3 hours if no objection
15:43 nrzkt #2918
15:43 ShadowBot https://github.com/minetest/minetest/issues/2918 -- Kick players when shutting down server by nerzhul
15:45 crazyR nrzkt looks good, althought i think build checks have failed. you may wanna have a quick look :)
15:47 nrzkt i will look at home, a++
16:08 nrzkt joined #minetest-dev
16:16 Krock I ran into a struct array problem: http://pastebin.com/DUe6iuMJ What's wrong here? It gives me an error about a misplaced '{' in the line "a_env[ENV_UNKNOWN] = {"
16:16 H-H-H that failed due to not being able to download irlict source
16:18 blaise joined #minetest-dev
16:18 nrzkt #2918 refactored to have a custom string when kicking all players. Also use it when Lua stack exception shutdown occurs
16:18 ShadowBot https://github.com/minetest/minetest/issues/2918 -- Kick players when shutting down server by nerzhul
16:19 nrzkt for core segfault is not handlable with this, because it's a coredump
16:20 Krock oh well, could someone tell me how I could solve that problem?
16:20 nrzkt H-H-H right, i have this error
16:21 nrzkt the next build works properly, hopefully
16:21 H-H-H nrzkt you also do android builds dont you
16:21 nrzkt ofc
16:22 nrzkt it's a Debian VM under BHyve on FreeBSD on my own server
16:22 H-H-H have you tested any recent android builds on hardware /
16:22 nrzkt which is a jenkins slave
16:22 nrzkt no, i haven't do android build since a long time. Is there any problem ?
16:23 H-H-H i can build head for android but theres something wrong with the sound it seems it is seriously loud and distorted however i can build stable 0.4 for android and the sound is fine
16:23 nrzkt i also noticed with clang that SRP needs a little fix, i will talk to est31 to fix those warns
16:23 H-H-H tested on galaxy fame and galaxy note 10.2
16:23 H-H-H 10.1*
16:23 nrzkt i didn't worked on sound, but i could test it maybe
16:23 nrzkt https://jenkins.unix-experience.fr/job/minetest-android-OfficialRepository-RollingRelease/
16:24 nrzkt have you tested this APK ?
16:24 proller joined #minetest-dev
16:24 H-H-H i used exactly same setup as in ndk and sdk were same when i built the 2 and as i say stable-4.0 works fine just not head
16:24 nrzkt this a daily build which generate an apk for users
16:24 H-H-H i will d/l and test now
16:25 nrzkt you can test many APK, there is a build history, one build per day :)
16:25 H-H-H will have to sign it first :)
16:25 nrzkt oh, you must be logged to dl ?
16:25 H-H-H nope im not logged in
16:25 nrzkt ah oh no, sign the apk
16:25 nrzkt it's not needed, it's a debug apk
16:26 H-H-H i just saw a link that was the unsigned one
16:26 H-H-H it says its minetest-release-unsigned
16:26 nrzkt yes, signing is done on my PC if i remember, i will automate it on jenkins maybe at next release
16:26 H-H-H i can sign it no big deal
16:26 nrzkt it's not needed for debug builds :p
16:27 nrzkt oh no
16:27 nrzkt it's a release build, not a debug build, i looked at the command line
16:27 nrzkt you can test and bissect, this will show a commit interval
16:29 H-H-H signed now installing
16:30 nrzkt good luck for your tests
16:32 H-H-H thanks for your help it seems i must be missing something in my build setup as minetest 0.4.12-315b works fine :|
16:35 H-H-H hmm ok thats not head of minetest thats head of stable -0.4
16:35 jin_xi joined #minetest-dev
16:35 H-H-H i mean master has sound issues
16:36 nrzkt i don't think this is maintained...
16:41 H-H-H yeah it just gets built from the stable-0.4 branch
16:41 H-H-H try building an apk from master branch :)
16:55 proller joined #minetest-dev
17:00 Robert_Zenz joined #minetest-dev
17:19 H-H-H hmmm seems like the bah sourceforge is down so irrlicht d/s are down
17:19 nore_ joined #minetest-dev
17:19 harrison joined #minetest-dev
17:20 Puma_rc joined #minetest-dev
17:20 nrzkt down and up sometimes
17:20 nrzkt i will download it locally
17:25 proller joined #minetest-dev
17:25 H-H-H i have it in a git repo i could add to github if it helps
17:26 rubenwardy joined #minetest-dev
17:26 H-H-H sorry i meeant svn
17:27 nrzkt we could add it as a download on github minetest also
17:28 H-H-H would need to be maintained though
17:28 nrzkt yes
17:28 nrzkt http://irrlicht.sourceforge.net/ is down too
17:30 TBC_x shouldn't we use nullptr instead of NULL where possible?
17:30 nrzkt why ?
17:30 sfan5 why?
17:31 TBC_x if we'll migrate to C++11 eventually... it would work with smart pointers
17:31 sfan5 is smart pointers using auto everywhere?
17:31 sfan5 if thats the case, no
17:32 TBC_x smart pointers have specializet template for comparing nullptr
17:32 sfan5 sounds like a lot of overhead
17:33 TBC_x for compiler, maybe
17:33 TBC_x you can't initialize smart pointer with NULL
17:34 TBC_x I'm tracking the memory leak with smart pointers btw
17:35 sfan5 not being able to use NULL sounds like a stupid thing
17:36 TBC_x you'll get used to it, probably
17:36 sfan5 you know
17:36 sfan5 NULL has a point
17:36 sfan5 ah
17:36 sfan5 https://en.wikipedia.org/wiki/Smart_pointer
17:37 sfan5 it was those things
17:37 sfan5 answer: no
17:37 TBC_x reason?
17:37 sfan5 a lot of work
17:38 TBC_x replacing NULLs?
17:38 sfan5 no
17:38 TBC_x replacing raws?
17:38 sfan5 replacing every single mention of pointers
17:38 TBC_x could find someone to do it
17:39 sfan5 thats not the point
17:39 sfan5 it changes a lot of code
17:39 sfan5 causes merge conflicts with most if not all PRs
17:40 TBC_x could be done progressively
17:41 sfan5 still causes merge conflicts
17:42 TBC_x rebase
17:42 TBC_x needs coordinating
17:42 sfan5 lolno
17:43 sfan5 you won't get anyone to agree to rebase all the PRs
17:44 TBC_x true
17:45 TBC_x could change all pointers when refactoring tho
17:45 TBC_x as refactoring may cause merge conflicts anyway
17:46 sfan5 refactoring does not happen on all code at the same time
17:47 TBC_x rewriting for smart pointers usually requires to change a single line
17:48 sfan5 because only a single line of code uses the pointer types, right?
17:49 TBC_x not necessarily
17:50 TBC_x you can unwrap it if you need to use raw pointer
17:51 sfan5 that would be stupid
17:51 TBC_x yes
17:51 sfan5 then the majority of code would use raw points
17:51 sfan5 pointers*
17:51 sfan5 just to have less changed lines
17:54 TBC_x need to compe up with a better transition strategy before and if that happens
17:54 sfan5 or alternatively we just leave all the code alone and don't use smart pointers
17:56 TBC_x unless the code has significant memory leak and is hard to track down
17:57 sfan5 transitioning all code to smart pointers will cause more problems than fix memory leaks
17:57 TBC_x I'm aware of that
17:58 sfan5 why are you even trying to argue then
17:59 TBC_x majority of the problems would be just revealed by the smart pointers, not caused by them
18:00 TBC_x if you don't count needed refactoring as a problem
18:03 nrzkt last call: #2918 will be pushed in 30 min (android build failed due to sourceforge pb)
18:03 ShadowBot https://github.com/minetest/minetest/issues/2918 -- Kick players when shutting down server and fatal Lua stack exception occurs by nerzhul
18:11 hmmmm that's not a trivial PR
18:12 nrzkt i tell this 2 hours ago. hurry hup. And this was discussed with est31 and 30 min are okay :p
18:12 hmmmm where
18:12 hmmmm i don't see est31's approval anywhere
18:14 hmmmm you can't just push non-trivial commits without approval because you gave two hours notice
18:14 nrzkt we talked about the approach to do and it's approach to do.
18:14 sfan5 taking about PR does not suffice
18:14 hmmmm where is this conversation, i can't see it anywhere
18:14 nrzkt and it's a trivial fix :)
18:14 hmmmm it's not trivial.
18:14 sfan5 you need explicit approval
18:14 hmmmm this changes functionality, and in a bad way.
18:14 sfan5 and no it's not trivial
18:14 hmmmm in fact i'm about to -1 this commit because it's the wrong approach
18:15 hmmmm you shouldn't try to do anything non-trivial on crash
18:15 nrzkt okay then, what is good ? for a compat issue
18:15 nrzkt the good approach cannot be used with compat
18:15 hmmmm when an application crashes, it is in an undefined state where anything could possibly happen
18:15 nrzkt the good approach is to have a proper packet to sent to client and handle it. Here we use the compat way.
18:15 nrzkt this is not the final way, it's the compat 0.4 way
18:16 nrzkt here we don't handle minetest core crash
18:16 nrzkt the only path where the message is sent, if you read the PR correctly is when there is: Lua fatal error => exit and proper shutdown => exit
18:16 nrzkt not coredump
18:17 nrzkt coredump is not the PR goal.
18:17 hmmmm well
18:17 hmmmm I suppose this is okay
18:18 nrzkt and also, another proper thing we should add for future protocol is a TOSERVER_PING/TOCLIENT_PONG to handle the crash over Udp
18:18 hmmmm it's only handling uncaught exceptions, and not deeper bugs like memory corruption or memory access violations
18:18 leat3 joined #minetest-dev
18:18 hmmmm fine, +1
18:18 nrzkt thanks.
18:18 hmmmm but you can't just lie to us that you had approval from other people first
18:18 hmmmm that's a huge no-no
18:19 nrzkt this approach was discussed, then, i thought it's a go to code pr and review :p
18:19 hmmmm an idea is not the same as its implementation
18:19 nrzkt for coredump i dont think we could notify client without PING/PONG packets
18:20 hmmmm when a code review is done, the actual code written is reviewed as well as the approach taken
18:20 nrzkt PING/PONG can also permit to have timeouts clientside
18:22 hmmmm don't take this personally, but you are way too commit trigger-happy
18:22 hmmmm code isn't going to spontaneously combust if it isn't merged within a day or two
18:24 kahrl_ I thought there were already pings in the protocol
18:24 kahrl_ the lower-level one
18:24 kahrl_ are they not used?
18:25 nrzkt no problem :)
18:26 nrzkt kahrl_ : no atm if you server crash client stays ingame
18:26 sfan5 they are used
18:26 sfan5 but the client doesnt disconnect
18:26 nrzkt something is missing clientside then
18:26 sfan5 indeed
18:27 nrzkt i will push it now
18:27 leat3 joined #minetest-dev
18:28 nrzkt pushed
18:37 kahrl_ I see that Client::deletingPeer(timeout=true) is getting called in this situation
18:37 kahrl_ so all that needs to happen is that that method actually does something
18:37 leat3 joined #minetest-dev
18:41 MinetestForFun joined #minetest-dev
18:44 kahrl_ something as simple as https://gist.github.com/kahrl/f58cce9dd468045c8fa4 might work
18:44 kahrl_ (I've tested that it works in this situation, but not yet that it won't break other situations)
18:50 Gael-de-Sailly joined #minetest-dev
18:56 MinetestForFun joined #minetest-dev
18:58 TeTpaAka joined #minetest-dev
19:29 leat3 joined #minetest-dev
19:48 nore_ joined #minetest-dev
20:02 AnotherBrick joined #minetest-dev
20:05 blaise joined #minetest-dev
20:05 werwerwer joined #minetest-dev
21:10 nore_ joined #minetest-dev
21:11 proller joined #minetest-dev
21:19 kilbith joined #minetest-dev
21:19 kilbith left #minetest-dev
21:29 AnotherBrick joined #minetest-dev
21:48 AnotherBrick joined #minetest-dev
21:59 Routh joined #minetest-dev
22:13 leat3 joined #minetest-dev
22:25 Puma_rc joined #minetest-dev
22:36 SudoAptGetPlay joined #minetest-dev
22:52 crazyR would someone please document the tabheader[] formspec feild int he wiki please
23:05 leat3 joined #minetest-dev
23:22 exoplanet joined #minetest-dev
23:34 Sokomine joined #minetest-dev
23:35 Sokomine joined #minetest-dev
23:39 kilbith joined #minetest-dev
23:40 Sokomine joined #minetest-dev
23:42 Sokomine joined #minetest-dev
23:54 kilbith left #minetest-dev

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