Minetest logo

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

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

All times shown according to UTC.

Time Nick Message
00:04 younishd joined #minetest-dev
00:20 VanessaE sapier: ok, installing that pull now.
00:24 sapier thanks VanessaE
00:25 VanessaE it'll take effect at tonight's restart
00:26 sapier ok if you don't complain till next weekend we're gonna merge it
00:27 VanessaE ok.
00:27 sapier unless someone else does complain ;-)
00:29 acerspyro Yall ugly.
00:29 acerspyro That's my complaint.
00:46 hmmmm hello
00:46 hmmmm oh man
00:46 hmmmm so what's going with 0.4.12
00:47 sapier considering the amount of changes merged recently I'm not sure if it would be a good idea
00:47 hmmmm some people wanted to do it soon
00:47 hmmmm if we merge 2119, it's going to have to wait
00:47 hmmmm something that huge is going to definitely crop up bugs
00:47 hmmmm and bad ones
00:48 hmmmm i'll try looking it over
00:48 hmmmm how far have you gotten?
00:48 sapier it's difficult to review as it's almost only code copy ... but diff messes everything up
00:49 hmmmm i looked at some, what's up with src/network/toserverpacket.cpp and toclientpacket?
00:49 hmmmm they're entire source files for a constructor
00:50 sapier well he intends to do some work on how packets are created I assume it's preparation
00:51 hmmmm so it's a work-in-progress?
00:51 sapier partial
00:51 hmmmm i thought it was ready
00:51 sapier it's ready as of packet handling
00:51 hmmmm yeah but definitely not to merge..
00:51 sapier but he's already doing additional stuff
00:51 hmmmm okay
00:51 hmmmm just checking because there has been a lot of talk about that recently
00:52 sapier the new stuff ain't actually related to this change ... at least not direct
00:52 hmmmm hmm what is the new stuff?
00:52 sapier but you're right an entire source file for a constructor doesn't seem right
00:52 hmmmm and how much does this interfere with enet integration?
00:52 hmmmm it does if you're coding Java :-)
00:52 sapier I don't know guess he wants to rewrite everything again
00:53 hmmmm hrmm
00:53 hmmmm rewriting things isn't necessarily good
00:53 hmmmm does he want to rewrite the protocol itself?
00:53 sapier I'm gonna let him surprise me what exactly he does ... but this part is reasonable work as it's doing some stuff we wanted to do for quite some time
00:53 hmmmm or the way packets are processed?
00:54 sapier I told him not to rewrite the protocol without asking why things where done the way they are done ... not sure if he's gonna really ask
00:54 hmmmm humm
00:54 hmmmm so what's your motivation for adding enet support?
00:54 acerspyro sex
00:54 sapier well let's focus on the current work not on future things
00:55 hmmmm compatibility with certain minetest derivatives?
00:55 sapier replacing the if/else cascade by a lookup table is a good approach
00:55 hmmmm okay then
00:55 acerspyro btw, why can't we provide an iOS app on the website?
00:55 sapier acerspyro: no
00:55 hmmmm what?
00:55 acerspyro why
00:56 sapier because we don't have one
00:56 acerspyro What if we make one
00:56 sapier do it
00:56 hmmmm you mean why don't we magically come up with an apple iOS port?
00:56 acerspyro hmmmm: like android building, yeah
00:56 hmmmm yeah, do it, don't just tell us to make magicial stuff happen when there's already way too much work..
00:56 sapier android port took about two years and it's still beta
00:56 acerspyro Ah, so iOS is to come
00:56 sapier nope
00:57 acerspyro in a far future
00:57 hmmmm it is to come if somebody wants to implement it
00:57 sapier I don't know about anyone working on an ios port
00:57 hmmmm nobody here has plans for that
00:57 acerspyro lol
00:58 acerspyro you guys have a VERY VERY VERY VERY VERY long to-do list anyways and are late in your stuff, so I think the iOS port could wait :P
00:58 sapier I don't even think any core dev does have a ios device ;-)
00:58 acerspyro lol
00:58 acerspyro I have an iPad 1
00:58 acerspyro That's it
00:58 hmmmm maybe you should start working on an iOS port if you're interested in having it
00:58 acerspyro sure
00:59 acerspyro I am annoyed of shitty ass unofficial iOS clients
01:00 sapier feel free to write the official port
01:00 acerspyro ipadian?
01:00 acerspyro Some kind of iOS VM
01:00 sapier you'll always need the real thing for porting
01:01 sapier btw I don't think apple does allow native apps on ios
01:03 acerspyro Bitch, no more Adobe Air for Linux
01:03 acerspyro I don't fucking care!
01:03 acerspyro :D
01:15 gregorycu joined #minetest-dev
01:16 hmmmm hey VanessaE, you there?
01:16 VanessaE yes
01:16 acerspyro no
01:17 acerspyro She's busy reading my chat on #minetest
01:17 VanessaE (if I'd have said no, he'd have said "maybe" or something :P )
01:17 acerspyro lol
01:17 hmmmm can you pleasepleaseplease profile Database_LevelDB::listAllLoadableBlocks for me on your big map
01:17 VanessaE how would I do that?
01:17 acerspyro Magic.
01:17 acerspyro you need to believe.
01:18 sapier acerspyro: stop trolling
01:18 acerspyro not trolling anyone.
01:18 acerspyro Just spewing random crap
01:18 acerspyro And I will stop spewing random crap, sure
01:18 hmmmm add a TimeTaker t("listAllLoadableBlocks);    printf("listAllLoadableBlocks: %dms\n", t.stop()); to that function
01:18 VanessaE ok, one moment
01:19 hmmmm acerspyro, #minetest-dev is for serious development discussion, not randomness
01:19 sapier acerspyro: in this case it's quite fine to kick you because you just said yourself you're violating the rules
01:19 hmmmm please take silly banter elsewhere
01:19 acerspyro I just said I'd stop
01:19 hmmmm VanessaE:  copy your map first, and run clearobjects on your copy
01:19 VanessaE eep
01:19 hmmmm note that you don't need to wait for the entire command to finish
01:20 hmmmm just when you get how long that thing took
01:20 hmmmm this is one of those things where frankly I have no idea how big the number is going to be
01:20 hmmmm it could be half a second, it could be 2 minutes, i have no idea
01:20 VanessaE I better run it on a local copy of the map then.
01:20 hmmmm yea
01:21 NakedFury joined #minetest-dev
01:23 hmmmm also this could have radically different results based on the db used...
01:23 VanessaE this'll be a while, I need to update my local map first
01:23 hmmmm this would be simpler if i had a really honking huge map in all kinds of different formats right here
01:23 gregorycu What are you investigating?
01:24 hmmmm if it's a good idea to filter the blocks selected from the list
01:25 hmmmm frankly I don't think I'm going to be able to do it without math directly in the SQL
01:25 hmmmm and that's with sqlite3
01:26 VanessaE meanwhile, if you wanna download the map and fiddle with it, you can grab it from here:  http://digitalaudioconcepts.com/vanessa/hobbies/minetest/worlds/
01:26 hmmmm yeah but how many GB is it...
01:26 hmmmm i have dsl
01:26 VanessaE 6.3 GB
01:26 VanessaE expands to about 6.7 or so
01:26 hmmmm are any of those sqlite3 maps
01:27 VanessaE all are leveldb
01:27 VanessaE but minetest can migrate from one to another
01:27 hmmmm okay
01:27 hmmmm well this is going to take some time :)
01:27 VanessaE ETA for remaining download, ~10 mins
01:27 hmmmm 31 hours it seems
01:27 VanessaE (I have a fast pipe ;) )
01:28 hmmmm ahh nice
01:28 hmmmm downloading at 50 KB/s
01:28 hmmmm well at least it's not killing my bandwith while I wait 31 hours, haha..
01:29 VanessaE averaging about 7.3 MB/sec here
01:30 VanessaE meanwhile, the bit you wanted me to add works out to this, yes?  http://pastebin.com/V46QauWq (src/database-leveldb.cpp, lines 83 on down)
01:30 hmmmm :/.. no
01:31 hmmmm first of all the code being profiled needs to be between the TimeTaker declaration and the printf statement
01:31 hmmmm second, the string needs to be closed..
01:31 VanessaE eek
01:32 hmmmm if I made a typo telling you to jump off a cliff, would you do it !?!?
01:32 VanessaE heh
01:32 VanessaE well given that it's C++ I'd hardly be able to spot the typo ;)
01:33 VanessaE so more like this:  http://pastebin.com/iEEfqdqa
01:33 hmmmm yeah, that's it
01:33 hmmmm haha
01:33 VanessaE and...failed to compile
01:33 hmmmm oh
01:34 VanessaE database-leveldb.cpp:85:2: error: ‘TimeTaker’ was not declared in this scope
01:34 hmmmm #include "util/timetaker.h"
01:34 hmmmm put that above void Database_LevelDB::listAllLoadableBlocks( ...
01:34 VanessaE there we go, that got it
01:34 VanessaE ok that's set
01:34 * VanessaE waits for the map
01:35 hmmmm this also determines whether or not I'm going to keep a saved block bitmap in the db for my upcoming trick :)
01:40 proller joined #minetest-dev
01:40 acerspyro joined #minetest-dev
01:41 VanessaE jeez.  note to self:  don't untar big gazonga files like this on a routine basis
01:47 est31 VanessaE: you offer whole downloads for all of your worlds?
01:47 VanessaE yep
01:47 est31 cool
01:49 est31 @all encountered segfault in latest master
01:49 VanessaE ok, done un-taring
01:49 VanessaE making the backup now.
01:50 est31 how to tell cmake to do debug symbols?
01:51 est31 -DCMAKE_BUILD_TYPE=Debug doesnt work
01:51 hmmmm -DCMAKE_BUILD_TYPE=Debug
01:51 acerspyro Should have debug symbols.
01:51 est31 gives stuff like 0x00000000006806b3 in MapBlock::serialize(std::ostream&, unsigned char, bool) ()
01:51 hmmmm odd
01:51 acerspyro thread apply all bt full?
01:52 acerspyro (I think)
01:52 hmmmm do ctrl+F for "-O1" in src/CMakeLists.txt and change it to -O0
01:52 VanessaE hmmmm: ok, map updated and backed up. starting /clearobjects now.
01:53 hmmmm yay
01:54 hmmmm did you see the clearAllObjects: <whatever>ms output yet?
01:54 VanessaE listAllLoadableBlocks: 52958ms
01:54 hmmmm ouch
01:54 hmmmm okay you can cancel that one
01:55 hmmmm does it take too long to convert that map to sqlite3?
01:55 VanessaE there's no way to cancel a /clearobjects ecept with a ctrl-C at the command line
01:55 hmmmm yea that's okay
01:55 hmmmm it's just a copy of the map, right?
01:55 VanessaE yep
01:56 VanessaE ok, canceled.
01:56 VanessaE converting to sqlite3 will take a while, probably upwards of 10 minutes I guess
01:56 hmmmm oh that's not too bad
01:56 hmmmm i was expecting hours
01:57 VanessaE shall I?
01:57 hmmmm yea
01:57 hmmmm please
01:58 VanessaE ok, migrating it now.
01:58 hmmmm thank you
01:58 impact joined #minetest-dev
01:59 VanessaE listAllLoadableBlocks: 50577ms was printed right before it started the actual migration process
01:59 hmmmm ahh
01:59 sapier left #minetest-dev
01:59 hmmmm that's right, it's called in more than one place
01:59 hmmmm haha
02:00 hmmmm vanessae, while you're waiting, i was just wondering how often you typically *want* to clear all objects from the entire map
02:00 VanessaE not often - in practice, probably once every few months
02:00 hmmmm would you want to be able to clear objects in a radius?
02:00 est31 eg killing old rats?
02:01 VanessaE there's no need - worldedit has a function for that
02:01 VanessaE //pos1, //pos2, //clearobjects (with two slashes)
02:01 hmmmm how about a time-to-live feature for objects?
02:01 VanessaE already exists.
02:01 hmmmm ahh okay
02:01 VanessaE by default, it's set to infinite; item_tweaks and related are supposed to set it to a sane value like 10minx or so
02:02 VanessaE mins*
02:02 hmmmm oh, so it's a part of the engine?
02:02 hmmmm good
02:02 VanessaE as I understand it, yeah
02:02 hmmmm ahh so i don't need to bother with the objects then
02:03 VanessaE lemme double-check that
02:03 hmmmm and, as far as I can tell right now, I'm going to need an in-db structure to cache which blocks exist
02:04 est31 sorry segfault was my error, everything works fine
02:04 hmmmm basically my idea involves running listAllLoadableBlocks() every time the map is loaded, which isn't plausible at this moment
02:05 acerspyro Is it the same dev as the MC WE who made MT WE?
02:05 hmmmm as a side effect to implementing this I suppose I can shave a minute of time off of /clearobjects :)
02:06 VanessaE hm, if there's indeed a TTL parameter for an entity, it's not documented in lua_api.txt
02:06 VanessaE acerspyro: no
02:07 T4im I think you could set one in the config though
02:07 VanessaE yes
02:08 VanessaE remove_items parameter
02:08 VanessaE but that doesn't seem like an engine setting.
02:08 hmmmm my gut feeling says that should be a mod-settable param
02:08 T4im "item_entity_ttl = 900"
02:08 VanessaE oh, or that
02:08 VanessaE (my config is outdated)
02:08 T4im Time in seconds for item entity to live. Default value: 900s.
02:08 hmmmm some things you'd want to expire fast like maybe leaf blocks that have fallen
02:08 hmmmm and then maybe something like super ultra rare item you'd want to never expire
02:08 VanessaE #    Time in seconds for item entity to live. Default value: 900s.
02:08 VanessaE #    Setting it to -1 disables the feature.
02:08 VanessaE #item_entity_ttl = 900
02:10 VanessaE I think I remember now, it's set to infinite for everything except items that have been spawned/dropped, where that ^^^ setting takes precedence
02:10 hmmmm ahh that's a sane object despawn scheme
02:13 VanessaE https://github.com/minetest/minetest/blob/d7b3046cf699641f14148463ed7d77e038548f12/builtin/game/item_entity.lua#L99
02:13 VanessaE interesting.  I thought it was handled inside the engine, not in the Lua part.
02:13 hmmmm god that is such ugly code
02:14 hmmmm lua would be so much nicer if it had simple things like "continue"
02:14 VanessaE btw, I was dead wrong on the migration time :)
02:14 VanessaE it's only at ~5 percent
02:14 hmmmm :/
02:15 hmmmm on the bright side, only 29 hours left until i'm finished downloading your map
02:16 T4im hopefully that download is continuable if it should stop D:
02:17 est31 with http you can request single chunks of a file
02:17 T4im also hmmmm, apparently lua has goto statements, which could be used inplace of a continue.. though.. ew.. why the heck would they add goto instead of continue D:
02:18 hmmmm hah
02:18 n4x why even add loops though
02:18 hmmmm actually goto was added recently as a new feature iirc
02:19 T4im also its probably best nobody uses that, or we will see gotos cargoculted into mods.. .S
02:19 T4im :S
02:19 hmmmm Lua is such an objectively bad language
02:19 hmmmm the only thing it has going for it is easy integration
02:19 T4im the language everybody hates and still uses ;)
02:19 acerspyro lol
02:20 VanessaE hmmmm: it could have been worse...
02:20 VanessaE coulda been some form of BASIC :)
02:21 kaeza <hmmmm> lua would be so much nicer if it had simple things like "continue"
02:21 kaeza this comes up REALLY frequently on #lua :/
02:21 hmmmm ternary operator
02:21 hmmmm overly verbose if statements
02:21 hmmmm etc.
02:21 est31 ternary is weird but it exists
02:21 hmmmm when I look at lua code, all I see is too much indentation
02:22 n4x bad code doesn't mean the language is bad
02:22 hmmmm it's because it's lacking a lot of stuff that would make it neater
02:22 n4x I would say it has lots of features nobody uses
02:22 n4x or barely uses
02:22 T4im hmmmm: at least they didn't choose to make indentation part of the syntax like some popular markup languages :/
02:22 hmmmm have you tried writing lua?  it's REALLY hard to keep your number of indentation levels to a sane amount
02:22 kaeza from your points, only the lack of 'continue' and a *real* ternary op is valid IMHO
02:22 hmmmm yup..
02:23 kaeza the rest are subjective
02:23 hmmmm lack of static typing too is a huge gripe of mine, but that's not along the same lines
02:23 est31 T4im: not just some markup langs use it, also a very popular programming language which I despise out of that reason
02:24 n4x hmmmm: it actually allows you to write nice 'functionalish' high order functions which basically have the patterns you want to abstract
02:24 T4im ah, yea, nearly forgot about that one, est31 :D
02:24 hmmmm honestly, trolling aside, I feel like javascript would've been the ideal choice
02:24 hmmmm writing the API would be much more difficult but god damn it'd be worthi t
02:26 T4im angelscript was afaik designed as a js similar language for games
02:26 hmmmm maybe, but javascript has all that commercial backing and it's fast for what it is
02:26 VanessaE hmmmm: are you channeling lamefun or something?  *shudder*
02:27 VanessaE next we hear, he'll be pushing HTML5 also
02:27 T4im librocket? ;)
02:30 est31 so thats bad because old hw?
02:30 acerspyro make it out of CSS and JS!
02:30 acerspyro :D
02:35 kaeza thinking about it, you could somewhat implement a script[<luacode>] formspec element to fully predict and do advanced things with FS client-side (assuming a proper sandbox, of course) :P
02:35 kaeza the formspec system is kinda like HTTP/HTML anyway :P
02:44 est31 does the new font rendering look at least nicer on retina displays?
02:49 VanessaE est31: in theory, but I've never tried it :)
02:52 est31 has someone tried sth like if(retina)then font=large else font=normal
02:54 VanessaE fonts right now are supposed to be displayed at the same angular size regardless of resolution, so long as the screen DPI can be detected, and the minetest instances running on the screens you're comparing have their gui_scaling set the same
02:56 est31 so they got larger because MT takes dpi now as a baseline?
02:57 VanessaE if they're larger, turn them down :P
02:57 VanessaE they're supposed to be about the same size as they were back in e.g. 0.4.9
02:58 * est31 is compiling 0.4.9
03:06 shadowzone joined #minetest-dev
03:08 est31 0.4.9 has normal size
03:08 est31 master has weird large size
03:09 VanessaE got before-and-after screenshots ?
03:09 est31 ill make some
03:09 VanessaE also, windows or linux?
03:09 est31 ubuntu
03:09 VanessaE ok
03:10 est31 minetest_game also on 0.4.9
03:13 DFeniks have you changed dpi settings in ubuntu , but dont ask me where to change them , i dont remember
03:17 est31 0.4.9 https://lut.im/jYNdj1t6/fc91aksT 0.4.11 before change https://lut.im/TKHbOqV6/Y8PoS3Mr master https://lut.im/5prnMIPq/JGlIMqp0
03:18 est31 not knowingly
03:18 VanessaE they all look approximately the same to me
03:19 VanessaE just the overall formspec size and layout differs
03:19 est31 VanessaE: compare the "Minetest" in the upper left corner
03:19 VanessaE master is slightly larger, yeah
03:19 VanessaE I thought you meant the fonts were gigantic
03:19 est31 no not that
03:20 est31 but chat uses more screen space
03:20 * VanessaE shrugs
03:20 VanessaE you can turn the size down a tad
03:21 VanessaE just turn gui_scaling down a little, maybe to 0.99 or so
03:22 est31 ok will do that
03:24 VanessaE (best to do that directly in your .conf)
03:27 est31 yes
03:27 VanessaE sapier said before that tiny differences like this are usually just rounding errors
03:28 est31 really then they should use double instead of float
03:38 Zeno` joined #minetest-dev
03:44 TriBlade9 joined #minetest-dev
03:49 hmmmm that isn't going to fix the main issue
03:49 est31 which is
03:50 hmmmm imprecision in float-string conversions
03:51 hmmmm using a double instead of a float will 'fix' errors that crop up after doing a lot of floating point math requiring a lot of precision
03:52 est31 conversion?
04:01 est31 Man a "Duplicated seqnum 385 non matching packet detected:" results in a segfault
04:18 kahrl since you were talking about dpi
04:18 kahrl does anyone know if there is intentionally no dpi detection on windows or if just nobody has done it yet
04:19 kahrl the code for it should be pretty simple, something like https://gist.github.com/kahrl/ae1213d791014d4afffb
04:20 kahrl (I can't test ^ since I don't use windows)
04:21 diemartin joined #minetest-dev
04:21 kahrl of course this is just the "logical" dpi which can be changed in the control panel
04:22 kahrl but using that makes sense anyway, if the user increases that they most likely want bigger fonts in minetest too
04:23 hmmmm sapier said he was going to implement windows dpi detection
04:24 hmmmm huh... what's SetProcessDPIAware
04:24 kahrl he also said he doesn't want anything to do with dpi and scaling issues any longer
04:24 kahrl dunno, I got that from http://stackoverflow.com/questions/12652835/getting-actual-screen-dpi-ppi-under-windows
04:25 hmmmm ehh
04:25 kahrl seems to be a function introduced in vista
04:25 hmmmm I don't know what that api does and it's supported on vista and up
04:25 hmmmm you should probably remove it
04:25 hmmmm it doesn't seem like it does anything we'd want anyway
04:25 hmmmm msdn doesn't even say what it does
04:26 Zeno` http://msdn.microsoft.com/en-us/library/ms701681%28v=vs.85%29.aspx
04:26 Zeno` As usual though I cannot understand their documentation heh
04:26 hmmmm yes definitely remove, even if you did it the "correct" way, http://support.microsoft.com/kb/921337
04:26 kahrl if you don't call then the DWM scales your whole window as a bitmap
04:27 kahrl obviously this results in blurriness
04:27 kahrl I'm not sure if this affects opengl/directx applications though
04:27 hmmmm of course not
04:27 kahrl I wouldn't be so sure
04:28 hmmmm that would be horribly inappropriate behavior
04:28 hmmmm already, it's inappropriate behavior
04:28 kahrl windows is full of inappropriate behavior
04:28 hmmmm windows is FUBAR
04:29 hmmmm hrmm
04:29 hmmmm well the dwm is only on vista+
04:30 kahrl do we still support xp?
04:30 hmmmm msdn lists a possible race condition as the rationale for its recommendation to use a manifest
04:30 hmmmm which is completely bupkis for us
04:30 kahrl eww
04:30 hmmmm I support XP
04:30 hmmmm the thing is
04:30 kahrl well ok
04:30 hmmmm if we don't put the manifest in and call that directly
04:30 hmmmm the function won't be found on vista
04:31 kahrl so this needs to be GetProcAddress'd
04:31 hmmmm if we do put the manifest in and have it set along with exe loading, we have mingw problems and it'd restart the computer after it fails to open on windows xp sp2 ...
04:31 hmmmm yes, that's precisely what i'm getting at
04:31 hmmmm and if it's not found in user32, then don't bother calling it since DWM won't be doing its crazy things
04:32 kahrl well that KB article problem can probably be avoided
04:32 kahrl just don't use a tag with two schema properties
04:32 hmmmm even if you do solve it, how well does it work with mingw
04:33 kahrl no idea
04:36 kahrl well it seems to be possible with a certain line in the resource file http://stackoverflow.com/questions/20255591/manifest-being-ignored-in-mingw-app
04:37 kahrl now somebody just needs to write that manifest
04:41 paramat joined #minetest-dev
04:42 paramat hi hmmmm please could you review/merge #2123 ?
04:42 ShadowBot https://github.com/minetest/minetest/issues/2123 -- Mgv7: New cave system with fewer large caves and new 3D noise tunnels by paramat
04:44 hmmmm looks good
04:55 est31 hmmmm: can you have a look at this too? we can ship it without package changes I think https://github.com/minetest/minetest/pull/2073#issuecomment-69466825
05:14 paramat https://cdn.mediacru.sh/0/0B9YkaARQdGV.png https://cdn.mediacru.sh/i/i2aSNNW1Ioux.png there are water caverns and endless abysses below v7 rivers, i remember you saying they are't intentional. this rare one looks good but mostly they are ugly thin vertical walls of water columns directly under the river walls, extending down to -31000. i plan to fix these, or at least remove the ugly structures
05:37 paramat 2 more things i might do are to make rivers a little narrower and have less of them
05:37 paramat left #minetest-dev
05:37 hmmmm how are you going to do that
05:42 hmmmm looking at generateRidgeTerrain() a bit closer right now... a lot of the math in that function is quite arbitrary
05:43 hmmmm the problem with the endless abysses happens when |uwatern| > width
05:44 hmmmm basically the problem is that I don't take absolute values at the appropriate points in the calculation
05:56 est31 why does minetest have LGPL not GPL?
06:01 hmmmm paramat, I'd rather hold out on merging that
06:02 hmmmm http://i.imgur.com/mIdaFP8.png
06:03 chchjesus_ joined #minetest-dev
06:05 selat joined #minetest-dev
06:10 gregorycu I'd be a lot better optimiser if I knew assembly
06:14 Zeno` If anyone feels like doing some thorough checking: https://github.com/Zeno-/minetest/commit/544cdd3f39f004ef3aa1a13bcd2bb520f6a99583
06:14 Zeno` I looked at every usage of MapNode and cannot see any issue (but there are quite a few to look at)
06:18 Zeno` Oh, the reason I'd like to do that is so https://github.com/minetest/minetest/blob/master/src/voxel.cpp#L177 can be fixed
06:19 gregorycu Zeno`: Do you know much about right shift?
06:19 gregorycu Of signed numbers
06:19 Zeno` gregorycu, yes, undefined behaviour
06:19 gregorycu No, implementation specified behaviour
06:19 Zeno` err yes
06:19 gregorycu I'm just wondering if you know of any implementations that do the "wrong" thing
06:20 Zeno` I haven't tested every compiler available, no :)
06:20 Zeno` Why would you need to do that anyway?
06:20 gregorycu Check out line 51 of numeric.h
06:20 Zeno` All compilers that I know of optimise stuff like x / power_of_2  to bit shifts anyway
06:21 gregorycu return (p>=0 ? p : p-d+1) / d;
06:21 gregorycu This is equiv to (p >> d) on windows
06:21 gregorycu Where d is number of bits, not block size
06:22 Zeno` err
06:22 Zeno` I don't understand what that function does
06:22 gregorycu it's easily explained
06:23 gregorycu It performs an integer division with a round towards negative infinity
06:23 gregorycu (As opposed to the default integer division which rounds towards 0)
06:23 chchjesus joined #minetest-dev
06:23 Zeno` Why isn't the function called that then? lol
06:24 gregorycu So, -10 / 16 gives you -1, not 0
06:24 Zeno` I don't think you can simply use implementation defined behaviour though :(
06:24 Zeno` let me look at some of my bit fiddling implementations
06:24 gregorycu I think it may be every implementation we care about
06:24 gregorycu But yeah, not sure
06:25 gregorycu I was expecting a bit of a speedup
06:25 Zeno` Are you sure the compiler doesn't optimise it anyway?
06:25 gregorycu I'm pretty sure it doesn't
06:25 gregorycu Err... It could, I suppose
06:25 gregorycu Depends how smart it is
06:26 gregorycu Because d is a parameter
06:27 Zeno` I reckon it would anyway. I should write a test case
06:27 gregorycu This seems like a micro-optimisation, but it's part of a large optimisation
06:28 Zeno` easiest way to check would be write a test case and look at the ASM :p
06:29 Zeno` or profile both versions
06:29 Zeno` say for 4 million or so random numbers
06:32 Zeno` Anyway, the problem is that it's implementation defined. MSCV could change the behaviour in their next release. So could gcc. So could any compiler
06:32 Zeno` I don't think they would, but...
06:33 Zeno` I can do it for powers of two :D
06:33 Zeno` but... not very useful
06:35 gregorycu Ok, the compiler is smart enough
06:35 gregorycu I just checked out the dis
06:36 Kalabasa joined #minetest-dev
06:38 gregorycu I am getting hung up on unimportant details
06:42 Zeno` Thought it might
06:45 hmmmm if getContainerPos(x, MAP_BLOCKSIZE) is hot *enough* to the point where that would matter, then I would say yes, change it to x >> 3
06:45 hmmmm x >> 4 rather
06:46 hmmmm but the thing is you'd need to add a test to see what kind of shift the compiler places
06:46 hmmmm and if it's logical, take care of that case
06:46 hmmmm i know that compilers simply will not optimize the ternary variant.  they're not as smart as you'd want to believe
06:47 gregorycu hmmmm: I didn't think they would
06:47 gregorycu But Visual Studio seems to have done just that
06:47 hmmmm really ..
06:47 gregorycu It probably recognises the pattern as a arth shift
06:48 gregorycu It replaces the whole thing with sar
06:48 hmmmm well it depends a lot on how you coded your test file
06:48 gregorycu This was in minetest src
06:48 gregorycu I'm still investigating
06:49 Zeno` gcc optimises it
06:49 gregorycu I'll have more data is 10 min
06:49 gregorycu in
06:50 hmmmm ahh it's marked as inline
06:50 gregorycu Right
06:50 hmmmm yeah i can see that happening
06:50 hmmmm i'm surprised
06:50 gregorycu This all came about because there was code to back-calculate the remainder of the division
06:51 hmmmm i usually have problems getting gcc to make very obvious optimizations
06:51 gregorycu And then that set me down this merry path of looking at division etc.
06:52 Zeno` "back-calculate the remainder"? O.o
06:52 gregorycu Yes
06:52 gregorycu One sec
06:53 hmmmm when i was 15 i used to initialize my variables like this:   int x = x ^ x;
06:53 gregorycu v3s16 relpos = pos - blockpos_last * MAP_BLOCKSIZE;
06:54 Zeno` hmmmm, yes... the compiler won't xor eax, eax to clear it
06:54 Zeno` that's a very good optimisation :)
06:54 gregorycu In scalar terms, that's     remainder = number - (quotient * DIVISOR)
06:54 hmmmm except compiler don't place xor eax, eax anymore except for generating small code
06:55 hmmmm compilers
06:55 Zeno` yep
06:55 Zeno` who knows what happens at the microcode level though (you might, lol)
06:56 hmmmm nobody really does aside from the intel people
06:56 Zeno` gregorycu, well I'm glad you're looking at that because I'm lost now :)
06:56 hmmmm since the format is undocumented, and even if it were documented, they encrypt microcode updates
06:56 hmmmm ;;
06:57 gregorycu I'll put it simply, if you want to get the quotient and the modulus there are a few ways of doing it
06:58 gregorycu quot = number / divisor; mod = number - (quot * divisor); is one way
06:58 gregorycu Where quot is the result of integer division
06:58 gregorycu For some reason quot * divisor was coming up as a hotspot
06:59 Zeno` ok, that makes sense
06:59 gregorycu quot = number / divisor; mod = number % divisor;  is another way
07:00 Zeno` yeah of course
07:00 gregorycu And those two statements with actually get optimised into a single asm statement
07:00 gregorycu will
07:01 kahrl number % divisor is implementation defined if number < 0
07:01 kahrl (and most implementations implement it in a stupid way)
07:01 Zeno` that is also true
07:01 Zeno` so we have two implementation defined optimisations now :)
07:02 gregorycu kahrl: They actually implement it in the sane way
07:02 gregorycu Anyway, yeah, implementation defined
07:04 kahrl well I guess yeah if / rounds towards zero then % should leave negative numbers negative
07:04 kahrl but that's (another reason) why / should round towards minus infinity
07:04 Zeno` anyway, with the current getContainerPos() it takes my CPU 7 seconds to generate two random numbers and pass them to getContainerPos() (for 400000000 iterations)
07:05 Zeno` that's with -O3. With -O0 it takes 8 seconds
07:05 Zeno` (non-inlined version as well)
07:06 hmmmm you could've messed up the test :)
07:06 Zeno` I could have
07:06 cib0 joined #minetest-dev
07:06 Zeno` here's the older version: http://codepad.org/YvOMwrKe
07:07 paramat joined #minetest-dev
07:07 Zeno` I didn't bother implementing getContainerPos2()
07:08 Zeno` my new version is the same but without inline. *shrug*
07:08 Zeno` I must be bored
07:09 paramat yep hmmmm your screenshot is not showing the new caves but the 'thin vertical walls of water columns directly under the river walls' created by your buggy river code, i recognise them they have that vertical spike structure, fly into one it will be water
07:10 paramat to be sure you could disable rivers to see the new cave system on it's own
07:11 hmmmm sorry yeah
07:11 hmmmm those are rivers
07:11 hmmmm i just noticed they're filled with water
07:12 hmmmm sorry, it sounded like a miscalculated index to a noise buffer
07:13 paramat cool =)
07:13 hmmmm hey paramat, is it okay if i reduce the Y spread factor for the cave noise
07:13 hmmmm right now caves are a bit too vertical
07:14 paramat yes good idea, but remember that will reduce headroom
07:14 paramat a few passages may become unpassable
07:16 paramat to make rivers narrower there is a number in the code that can be reduced. to make fewer rivers i will increase the spread of river 2d noise (plus extra reduction of width to compensate)
07:18 hmmmm hhmmm
07:18 hmmmm it's reducing the headroom a little too much
07:18 hmmmm how do we control this...
07:18 paramat perhaps increasing x and z spreads instead? to 150 or 200
07:18 hmmmm yeah but
07:18 hmmmm you make them thicker too at the same time
07:19 paramat to preserve headroom thats unavoidable
07:19 hmmmm i want the folding to happen on the Y direction more often, but not reduce the height
07:19 hmmmm no, i'm certain it's not unavoidable
07:19 hmmmm hrmm
07:19 paramat okay to be more positive, difficult
07:20 hmmmm noise can be hard to control =]
07:22 paramat 1.5 times wider in x, z directions is not a problem, i would increase x, z spreads to 150
07:23 hmmmm well
07:23 hmmmm one way this *can* be done is to not use the noise values directly to decide whether or not to place an air node
07:24 hmmmm but instead whether or not to place a shape
07:24 hmmmm the shape in particular could be a 3 node vertical line
07:24 hmmmm messy
07:25 hmmmm another way we can do it is by adding a noise post-procesing step to do some kind of unidirectional gaussian blur on the Y axis
07:25 hmmmm I'm not sure how it'd be possible to coax a Y bias directly out of the noise results..
07:26 paramat interesting ideas but perhaps for v8 instead? that'll get you started on that ;)
07:26 hmmmm yeah.
07:26 hmmmm I think I'll try going with idea #2 out of those
07:28 paramat v7 tunnels are slow enough i suggest just squashing them simply with x, z spreads of 150
07:28 paramat i mean v7 is slow enough
07:28 hmmmm it was fast until v5 caves came along
07:28 hmmmm haha.. =/
07:28 hmmmm seriously
07:28 paramat hehe
07:28 hmmmm it was like 70ms per chunk
07:28 hmmmm now it's 220
07:29 paramat 70 with mountains and rivers?
07:29 hmmmm yes
07:29 paramat wow thats shocking
07:29 paramat cant see how
07:29 paramat just 2 more 3d noises on top of 2 existing
07:29 hmmmm maybe i should check
07:30 paramat could reduce tunnel octaves to 3
07:31 hmmmm 130-160 without caves
07:31 twoelk joined #minetest-dev
07:34 paramat i would prefer to keep caves as in my PR, not squashed, verticality is good, after all players want to descend, making them more horizontal will frustrate, it's already hard enough finding a route down. speed descending is huge fun too
07:36 Hunterz joined #minetest-dev
07:38 hmmmm ohh
07:39 hmmmm i forgot about my ore-generated caves
07:39 hmmmm derp
07:39 hmmmm no wonder why it's so slow
07:45 paramat maybe calculation of river and mountain noises can be skipped when underground? i'll look into it
07:46 hmmmm they can
07:46 hmmmm i'm not very interested in further developing v7 though
07:46 hmmmm it's a piece of junk - it always was a piece of junk
07:46 hmmmm half developed ideas
07:48 SopaXorzTaker joined #minetest-dev
07:50 paramat its actually my favourite core mapgen
07:52 gregorycu Zeno`: If you get a chance, did you want to pull #2140 locally and check it out
07:52 ShadowBot https://github.com/minetest/minetest/issues/2140 -- Water perf improvements by gregorycu
07:56 paramat i'm inspired to tune it and improve it, i see the potential in it, so could you perhaps leave it mostly in my care while you start fresh with v8? =)
08:00 paramat a problem with more horizontal caves is increase of surface griefing: scars and gouges along the surface
08:04 paramat the way i see it, with caves, being a vertical route is more important than being a horizontal route, so squashing them not desirable (while still being a cool idea in isolation) (sorry ... i am opinionated and passionate)
08:08 paramat O/
08:08 paramat left #minetest-dev
08:18 Player_2 joined #minetest-dev
08:23 Krock joined #minetest-dev
08:24 Krock updated #2138
08:24 ShadowBot https://github.com/minetest/minetest/issues/2138 -- Hide minetest version string by SmallJoker
08:25 Calinou joined #minetest-dev
08:32 TriBlade9 joined #minetest-dev
08:38 nrzkt joined #minetest-dev
08:49 Zeno` joined #minetest-dev
08:51 cib0 joined #minetest-dev
08:55 ImQ009 joined #minetest-dev
09:06 ImQ009 joined #minetest-dev
09:20 kilbith joined #minetest-dev
09:24 Calinou joined #minetest-dev
09:30 Zeno` gregorycu, are you awake?
09:30 Zeno` void raiseModified(u32 mod, const char* reason)     <--- the preferred minetest style is void raiseModified(u32 mod, const char *reason);
09:30 Zeno` same with &
09:32 nrzkt Zeno, can you open a test server with #2119 for diagnostic if all is right, if i do the diagnostic myself it's not clear. Sapier request a 1 week running server to test functions
09:32 ShadowBot https://github.com/minetest/minetest/issues/2119 -- Rewrite client/server packet handling by nerzhul
09:33 Zeno` nrzkt, looking at how I might do it now
09:33 nrzkt you can simply pull my own branch https://github.com/nerzhul/minetest/tree/packet-handling and compile it
09:34 Zeno` yeah I know that :P I really meant *where* I can do it
09:34 nrzkt oh :) sorry
09:34 Zeno` I can testing using my server I guess
09:35 Zeno` give me a few moments. I'll set it up
09:36 kilbith thanks very much Zeno`
09:37 kilbith minetest_game only should be sufficient
09:38 Zeno` Oh, it'll just be using my normal minetest_game
09:38 Zeno` doing backups and stuff now
09:39 Zeno` takes a while (database, excluding anything else, is 14GB)
09:41 leat Zeno`: what backend are you using?
09:41 Zeno` leveldb
09:42 leat never corrupted so far?
09:42 Zeno` none that were an issue
09:42 hintss xD
09:43 Zeno` I have had corruptions but they were caused by something related to teleporting near to world boundaries
09:43 Zeno` still haven't worked that one out
09:44 Zeno` nrzkt, I'm testing #2119, right?
09:44 ShadowBot https://github.com/minetest/minetest/issues/2119 -- Rewrite client/server packet handling by nerzhul
09:44 nrzkt yes
09:44 nrzkt it's the branch to test, packet-handle_2 is next PR, and is not ready for production
09:44 Calinou can you host a server to test?
09:45 nrzkt me ?
09:45 Calinou you or Zeno`
09:45 ImQ009 joined #minetest-dev
09:45 Calinou we'd need a large server to ensure it works well :/
09:45 kilbith hmmmm: the nerzhul's pull is for the layer 7, not the layer 4 (Enet).
09:46 Zeno` I am building now, nrzkt
09:46 Zeno` I'll host the test
09:47 nrzkt perfect, it's better someone other than me have the hosting, neutral server :)
09:48 Zeno` ok it's up and running
09:48 Zeno` mtzeno.com 30000
09:49 * kilbith is coming...
09:50 Zeno` Calinou, I will reset your password
09:50 Calinou no need
09:50 Zeno` got it now? :)
09:50 Calinou works
09:51 ImQ009 joined #minetest-dev
09:52 nrzkt for somes which are saying the code is huge, i cannot do a more little commit because we need all of those parts for the base. I know two classes are useless, but they are there for compatibility of the code reading, i'll remove it later.
09:56 Zeno` nrzkt, well no immediate issues and the server load does seem to be a bit lower
09:56 Calinou https://github.com/minetest/minetest_game/pull/401
09:56 Calinou comments?
09:57 nrzkt packet processing is faster when huge amount of packets, but load is due to map, not network
09:57 Calinou I'd like the default crosshair to be an image
09:57 gregorycu I am awake, but I'm watching the game
09:58 gregorycu void raiseModified(u32 mod, const char *reason)
09:58 gregorycu What's the difference?
09:59 gregorycu Oh
09:59 gregorycu Seriously?
09:59 Zeno` nrzkt, the biggest bottleneck in communications is zlibCompress anyway
09:59 nrzkt ofc
10:00 Krock Calinou, looks horrible, srsly
10:00 nrzkt i'm rewriting L7 part, because there are duplicated and optimization. Next part will be packet rewrite, to have a common interface and also remove some duplicate code and optimize some processing (like session search)
10:01 Krock good luck
10:04 nrzkt i'm blocked on a byte conversion problem it seem
10:04 nrzkt the input is correct but the server output is incorrect... the problem was in u32 conversion
10:04 Zeno` nrzkt, be sure to let me know of updates/fixes since I'm running the test on my real server :P
10:04 nrzkt i have no fixes to do on this pr
10:04 Zeno` oh, phew
10:05 Zeno` but if you do, let me know :)
10:05 Zeno` testing client now...
10:05 nrzkt it's working very well, problems are on PR-2 , no problem, i don't see any probme
10:08 Zeno` ok, well the server is running with the patch and now my client is as well
10:08 Zeno` I don't think I've seen any issues so far
10:19 Zeno` so far so good nrzkt. I'll let you know if I have issues in the coming week
10:19 Zeno` let sapier know I'm hosting the patch as well
10:19 nrzkt no problem i'm waiting the merge
10:20 nrzkt vanessaE uses the merge too since this night
10:20 kilbith he will read the logs, the admins feedbacks would be useful
10:20 cib0 joined #minetest-dev
10:22 Zeno` well the more testers the better ;)
10:25 kilbith the start-up loading seems faster now that L7 is improved
10:28 est31 there is an issue with master: the hearts are drawn over the HUD when it has two lines
10:37 est31 https://lut.im/WZc5eNkR/79pCAwO4?t
10:38 est31 that was on VanessaE survival
10:56 rubenwardy joined #minetest-dev
11:00 SudoAptGetPlay joined #minetest-dev
11:01 gregorycu Back
11:06 Zeno` gregorycu, scroll up ;)
11:06 Zeno` also your PR doesn't seem to apply?
11:07 gregorycu You talking about merge conflicts?
11:08 Zeno` Not sure. Just looking at the PR for now
11:08 Zeno` "we cannot automatically merge this"
11:08 Zeno` I haven't tried to apply it myself yet
11:09 gregorycu Yeah, merge conflict
11:22 gregorycu_ joined #minetest-dev
11:22 sapier joined #minetest-dev
11:22 sapier https://github.com/minetest/minetest/pull/2132 http://imgur.com/zfSqJji,NUxEBYx guess that's all we can do about reducing buttons on mainmenu.
11:23 sapier -mainmenu + mainscreen
11:23 kilbith sapier: read logs plz.
11:23 sapier somethin special there?
11:23 kilbith yes, testing 2119 on zeno's server
11:24 sapier and?
11:24 kilbith no problem to signal for the moment
11:25 kilbith that's seems (subjectively) faster
11:25 Zeno` I'd ignore the subjective thing ;)
11:25 sapier no issues yet is nothing worth to mention 1 day after start of testing
11:25 Zeno` there are too many variables
11:26 sapier Zeno`: as of code design it should be faster, yet I don't know if the effect is large enough to realize
11:26 sapier if your server ain't close to the edge about what it can handle you most likely wont notice a difference
11:26 Zeno` sapier, I agree. The performance *is* increased but I don't know if a user could notice it
11:27 sapier I think it's more about increasing the maximum amount of clients
11:27 Zeno` yes
11:27 Zeno` and neither my server nor VanessaE's get 15+ clients these days :(
11:27 sapier and of course it's code cleanup :-)
11:28 sapier still imho we should wait a week and see what's gonna happen
11:28 Zeno` yeah, that's why I applied the patch
11:49 gregorycu Zeno`: So, what do I do?
12:00 Zeno` rebase?
12:01 Zeno` who wrote the particle system?
12:03 Zeno` ParticleManager::handleParticleEvent() is using unitialised stuff
12:09 gregorycu We leak a lot of stuff
12:10 gregorycu About 150k leaks
12:11 gregorycu Do we close lua down properly?
12:11 Zeno` it's not a leak
12:11 Zeno` it's using objects that are not initialised
12:13 gregorycu I'm not talking about the particle system, I'm talking about what I am doing
12:13 gregorycu Investigating pipeworks
12:14 Zeno` actually it might be a bug in #2119
12:14 ShadowBot https://github.com/minetest/minetest/issues/2119 -- Rewrite client/server packet handling by nerzhul
12:15 jin_xi joined #minetest-dev
12:15 gregorycu What is
12:16 Zeno` Particles using unititialised data
12:16 Zeno` rebuilding now
12:17 nrzkt i don't modify the current running code, this may be uninitialized before
12:20 Zeno` well, I dunno
12:20 Zeno` running tests again
12:20 Zeno` https://github.com/nerzhul/minetest/blob/packet-handling/src/client.cpp#L1806
12:21 Zeno` it's hard because each test takes about 20 minutes
12:21 Zeno` but id is supposed to be 32-bit
12:26 nrzkt in packet it's 16bit
12:26 nrzkt we need to cast it, then
12:26 nrzkt i'll fix it soon, i go to lunch
12:28 cib0 joined #minetest-dev
12:34 n4x joined #minetest-dev
12:52 gregorycu_ joined #minetest-dev
12:58 gregorycu Good news, I found a (the?) leak
12:59 gregorycu We are leaking WieldMeshSceneNode objects
13:01 ElectronLibre joined #minetest-dev
13:02 Mine-aholic joined #minetest-dev
13:03 nrzkt Zeno, a cast from u16 to u32 resolve the problem ?
13:07 Mine-aholic joined #minetest-dev
13:10 Zeno` I changed u16 id; to u32 id;
13:10 nrzkt no
13:10 nrzkt BAD
13:10 Zeno` I know, but something very odd is happening here
13:10 nrzkt if you do that extractor tries to extract u32 value whereas packet has ONLY a u16 value (yes it's stupid but server send that)
13:11 nrzkt look at SendDeleteParticleSpawner in server.cpp in master
13:13 Mine-aholic joined #minetest-dev
13:13 iqualfragile joined #minetest-dev
13:13 Zeno` yeah
13:15 Zeno` I actually can't work out wtf is going on :/
13:17 Zeno` the code is complicated
13:17 Zeno` I'll look again tomorrow I think
13:18 nrzkt i updated the pull request and cast read u16 to u32
13:19 nrzkt i you can confirm the bug disappear it would be cool
13:22 Zeno` I don't know if this is an issue at all now :/
13:23 sapier guys never ever change types of packet elements!!! that's gonna horribly fail!
13:26 Zeno` s/an/the
13:31 gregorycu Fucking hell, I thought I found the leak, all I found was _a_ leak
13:31 gregorycu lol, same story as you Zeno
13:32 Zeno` All I know is that https://github.com/minetest/minetest/blob/master/src/particles.cpp#L476 causes an initialized variable to be accessed/used down the line
13:33 Zeno` whether that's because of the patch or not I haven't determined
13:34 Zeno` mainly because I find the whole of particles.cpp fairly confusing. I dunno why
13:35 gregorycu Maybe because it is confusing?
13:35 Zeno` Could be
13:36 ElectronLibre_ joined #minetest-dev
13:48 sapier https://github.com/minetest/minetest/pull/2132 anyone to provide better starter button icons?
13:50 sapier is there still a leak in particles?
14:01 gregorycu Are you referring to pipeworks?
14:01 gregorycu It's leaking entities
14:01 gregorycu By "it", I mean the core engine
14:03 gregorycu I really wish I knew what I were doing
14:03 gregorycu was
14:03 gregorycu am
14:04 gregorycu Anybody know much about irrlicht?
14:06 sapier didn't you use pipeworks to flood a mapblock?
14:06 sapier irrlicht is not related to pipeworks ;)
14:08 gregorycu I think you're confusing me with a modder or something
14:09 gregorycu We are leaking objects
14:09 gregorycu WieldMeshSceneNodes, to be precise
14:11 sapier great
14:12 gregorycu Looks to be a dodgy refcount
14:12 gregorycu I'll have a solution within the hour
14:23 iqualfragile joined #minetest-dev
14:27 kahrl gregorycu, try removing the grab() at content_cao.cpp:948
14:27 gregorycu Already have :)
14:27 kahrl ah
14:27 gregorycu I'm trying to figure out what's going on, I think there are more issues
14:28 gregorycu It's lines like that kahrl, that really bug me
14:28 gregorycu It's like a dash of magic to make it work
14:29 kahrl I don't know why I added it
14:30 kahrl probably because all the other cases grab their node
14:30 kahrl but those aren't allocated with new so it makes more sense there
14:31 gregorycu I really dislike the... informal nature of it all
14:31 gregorycu That's cause of irrlight
14:31 gregorycu Too easy to stuff up
14:37 kahrl well I don't really see a good way to make it more formal
14:37 kahrl nobody is going to rewrite minetest in rust
14:37 kahrl and smart pointers... bleh, even easier to stuff up
14:39 gregorycu What's rust?
14:39 gregorycu Doesn't matter
14:39 gregorycu The metrics I was using are inaccurate, that may have fixed it
14:40 kahrl a programming language, compiled like C++, supposedly with similar performance, but pointer types with built in memory management semantics
14:40 gregorycu But I know C++
14:40 gregorycu Let's stick to C++
14:40 kahrl yeah
14:41 gregorycu I'll rephraise, I though I knew C++
14:41 gregorycu thought
14:51 cib0 joined #minetest-dev
14:51 T4im joined #minetest-dev
14:51 nore joined #minetest-dev
14:58 nore sfan5, thoughts about game#400, game#397 and game#388?
14:58 ShadowBot https://github.com/minetest/minetest_game/issues/400 -- Add straw by kilbith2
14:58 ShadowBot https://github.com/minetest/minetest_game/issues/397 -- Follow naming convention of textures and sounds in doors by CraigyDavi
14:59 ShadowBot https://github.com/minetest/minetest_game/issues/388 -- Add fancy inventory for bones by CraigyDavi
14:59 shadowzone joined #minetest-dev
14:59 shadowzone joined #minetest-dev
14:59 shadowzone joined #minetest-dev
15:00 sfan5 nore: game#388 is good
15:00 ShadowBot https://github.com/minetest/minetest_game/issues/388 -- Add fancy inventory for bones by CraigyDavi
15:00 sfan5 (good = you can merge it)
15:00 sfan5 s/you/we/
15:01 nore ok, doing that
15:01 sfan5 game#397 is ok too
15:01 ShadowBot https://github.com/minetest/minetest_game/issues/397 -- Follow naming convention of textures and sounds in doors by CraigyDavi
15:03 sfan5 i commented on game#400
15:03 ShadowBot https://github.com/minetest/minetest_game/issues/400 -- Add straw by kilbith2
15:05 shadowzone Any news on my PR or is that not gonna be merged and instead made into a button on the pause menu?
15:06 nore shadowzone, link?
15:07 shadowzone https://github.com/minetest/minetest/pull/2135
15:09 kilbith sfan5: better ? https://lut.im/VYEr5qfk/Q957kKA2
15:10 sfan5 kilbith: i don't see a difference
15:10 kilbith i've lightened more top & bottom
15:10 sfan5 try making it even more lighter
15:11 Megaf joined #minetest-dev
15:13 kilbith sfan5: https://lut.im/qnCt65RU/T3h0iQxY
15:13 sfan5 those look exactly identical
15:13 sfan5 are you sure the texture changed
15:14 kilbith hmm, no. +10 of light and +10 of contrast
15:18 Krock kilbith, I like those
15:19 kilbith like everyone
15:24 kilbith sfan5: i was saving the file in the wrong folder, sorry
15:24 kilbith sfan5: better now ? https://lut.im/u4ChbFNs/zHgR7lWg
15:24 sfan5 kilbith: yep
15:24 kilbith ok, pushing...
15:26 kilbith ok, ready.
15:28 sfan5 nore: game#400 is good too
15:28 ShadowBot https://github.com/minetest/minetest_game/issues/400 -- Add straw by kilbith2
15:29 nore sfan5, ok
15:31 nore done :)
15:35 kilbith someone has tested game#395 ?
15:35 ShadowBot https://github.com/minetest/minetest_game/issues/395 -- Make furnace work even when unloaded by Kalabasa
15:37 selat joined #minetest-dev
15:37 nore not yet
15:41 booly-yam-4217 joined #minetest-dev
15:47 est31 I think the issue in #395 is a very basic one related to abms. When you walk away from your farm, you expect your plants to grow when you are not present
15:48 ShadowBot https://github.com/minetest/minetest/issues/395 -- Config file on XDG dir on Linux
15:48 est31 meant game#395
15:48 ShadowBot https://github.com/minetest/minetest_game/issues/395 -- Make furnace work even when unloaded by Kalabasa
15:50 sapier est31 how is furnace related to farm?
15:50 est31 so I think we should have a param to the register_abm method that contains whether the abm should be simulated when loading the map again
15:50 est31 ^that way
15:50 sapier no we shouldn't
15:50 sapier abm is a basic mechanism
15:51 sapier if this complexity is needed by a mod (even default game mods) the mod has to handle it
15:51 est31 and another method? This is neeeded more often than just once
15:52 sapier because mods abuse abms for things they haven't been meant for
15:52 sapier and as always once someone did it others copy the bad example
15:53 est31 so that speaks against a "hand-made" solution for the furnace and for an engine solution
15:54 sapier imho if it's needed that hard we'd have to add some sort of "complex_abm" but don't bloat regular abm handling by that complexity
15:55 sapier most abm's work just fine without simulation, if they'd have to do it too that'd cause a lot of additional overhead for no reason
15:55 gregorycu How do you simulate an abm reliably?
15:56 sapier see the commit he's calculation the time from last abm at this position by storing information in metadata
15:56 sapier doing this for all abms is quite crazy
15:56 est31 you could give the method a param that sais how often it would have been invoked if it were loaded
15:56 est31 yes i agree
15:56 sapier you'd bloat metadata as well as cause additional overhead for each single node
15:57 est31 therefore we need to separate between "bloated" nodes and nonbloated ones.
15:57 sapier and even more severe what to do if there are multiple abm's attached to a node?
15:57 est31 we only need to store when a mapblock/chunk/whatever was last offloaded by the server
15:57 est31 in the db
15:58 sapier we don't know when it was last offloaded by server
15:58 sapier if we wanted to know we'd have to update all nodes prior saving block
15:59 sapier and it wouldn't help for the situation the the furnace commit fixes too because you still wouldn't know when this abm was called last
15:59 est31 we can't invoke something when the server offloads?
16:00 sapier we can but we don't do it and it's quite significant overhead for guessed 0.01 nodes per block which really need it
16:00 sapier and as you see in furnace commit there is another way to do it not causing this overhead
16:00 est31 through code duplication, i see
16:00 sapier not necessaryly
16:01 est31 but?
16:01 sapier you could encapsulate that code within a register_simulated_abm
16:01 est31 ok thats goos
16:01 est31 good
16:01 sapier better register_timed_abm
16:02 sapier those who really need the time information may use it those who don't can still use the lightweight version
16:02 gregorycu I think it's better just to have the ability to force nodes to be loaded
16:02 sapier no it's not
16:02 gregorycu You can't possibly be accurate trying to "fast forward" node abms to catch up
16:02 sapier it's violating minetest design specification
16:03 gregorycu How dare the wants of the people violate the design specs!
16:03 sapier it's just a workaround used by those who don't wanna write sufficient code
16:03 est31 you are never accurate, as ambs always have a probability
16:03 gregorycu I'm not talking about probability
16:03 gregorycu What if one node influences another node
16:03 Zeno` joined #minetest-dev
16:03 gregorycu And that node was loaded
16:03 sapier gregorycu: you didn't think your suggestion to the end
16:03 est31 and its stupid to keep a bytestring in memory and call all n seconds a method to check change
16:04 gregorycu Why?
16:04 gregorycu How did I not? What am I missing?
16:04 est31 because you can offload it, execute the stuff and load it again
16:04 sapier if server shuts down a node will be saved anyway so you'd actually need the persistency code to preserve the states
16:04 est31 do you want to keep all furnaces in memory? all workstations? all everything?
16:04 sapier unless you're lazy and ignore those errors
16:04 gregorycu I thought we were talking about things working in the background?
16:05 est31 yes there are administrative world anchors see technic mod for details
16:05 est31 but those introduce lag
16:05 sapier so once you are able to keep your states throughout server restart, don't you think those states won't be available throughout block reload too?
16:05 est31 and bloat memory
16:05 gregorycu I think you are misunderstanding what I'm saying
16:05 gregorycu Well, est31 understands
16:05 sapier I do gregorycu
16:06 sapier whatever a node would've had to do can be done on node loading too IF this is implemented
16:06 gregorycu That's not true
16:06 sapier it is
16:06 gregorycu What if a node influenced another node
16:06 est31 yes of course for that there is another mechanism
16:07 est31 the same one the administrative world anchor uses
16:07 sapier a node is a static element not supposed to interact to other nodes
16:07 gregorycu But the other node is in memory the whole time
16:07 sapier if you wanna have active elements use entities
16:07 gregorycu People often make machines as nodes
16:07 sapier gregorycu: following your logic server would've to keep whole map active all the time
16:08 est31 ^
16:08 gregorycu When did I say keep the whole map loaded?
16:08 gregorycu Just keep the important blocks loaded, via the anchors
16:08 sapier there always will be a node unloaded which could be checked by some other node
16:08 gregorycu Not with anchors
16:09 sapier anchors wouldn't help
16:09 gregorycu Why not?
16:09 sapier because it'd still not guarantee that noone relies on nodes not anchored
16:09 gregorycu Right, but the onus is on the player to get that right
16:09 T4im est31: it should introduce less lag than an additional player though if configured right… especially in technic it seems common for players to start idling around their quarries keeping 3x3 blocks loaded instead of possibly just one from an anchor
16:10 T4im also seen players multiaccounting for that purpose
16:10 est31 VanessaE doesn't want to give me some for some reason. I'll idle now.
16:10 gregorycu I agree with est31 however that we need some way to run code just before a block unloads
16:11 gregorycu Or server shutdown
16:11 sapier gregorycu: there's very very very little reason for keeping a node active, almost anyone asking for it by now did specify a reason which could be done without keeping a node active.
16:12 est31 gregorycu: this API might interest you https://github.com/minetest/minetest/blob/master/builtin/game/forceloading.lua
16:12 gregorycu Well, I just said one
16:12 gregorycu One node influencing another
16:12 sapier it is additional work yes ... but I don't wanna support violating design rules just because of lazyness
16:12 sapier if one node knows about the other one influencing it it could store the other nodes state too
16:13 gregorycu Every node could store every other nodes state
16:13 sapier as long as it's unloaded that state will be valid
16:13 est31 the most clean way is as sapier said an own method register_counting_abm or sth along that line and then give the method an integer of how often it would have been called.
16:13 gregorycu This is a very good point
16:13 gregorycu sapier just made an excellent point
16:14 gregorycu Rather than put the logic in the nodes, put the logic outside the nodes
16:14 gregorycu But where do you save it?
16:14 sapier actually nodes are not supposed to contain complex logics
16:14 est31 even plants have
16:14 gregorycu Is that also against the design rules?
16:15 est31 if dirt if light if not overpopulated
16:15 sapier see gregorycu we've got heavy entities and lightweight nodes. I try to keep the nodes lightweight because if you add all those features entities already provide they're gonna be as heavy as entities are now
16:16 sapier node metadata storage is a heavy operation it's supposed to be used with caution and not excessive
16:16 gregorycu Well, is there some mod design guidelines somewhere?
16:16 sapier nothing written
16:17 Zeno` how people write mods is not controllable (IMO)
16:17 est31 due to LGPL
16:17 gregorycu *sigh*
16:17 sapier we can just tell how core code is done
16:17 T4im well, you do have a lot of cargo culting in the mod area.. so write good code that is being copied and you get better copies
16:17 gregorycu I think everyone is being retarded in different ways
16:17 Zeno` no, due to the Lua API
16:18 gregorycu Or I'm fucking cranky
16:18 sapier T4im: ppl tend to copy worst example
16:18 gregorycu Or both
16:18 sapier because good ones usually look complex at first glance
16:18 est31 :D
16:18 gregorycu Only if the developer is stupid
16:18 * VanessaE peeks in
16:18 est31 (or learning)
16:18 T4im sapier: from what I've seen they tend to copy anything that they understand does something they want to have done..
16:19 Zeno` yes, and the mods that are "stupid" tend to end up at the bottom of the pile
16:19 sapier nope in lua you can't hide the implementation details behind a clean api
16:19 gregorycu Give me a good example on how to structure a mod, and I'll follow it
16:19 T4im the good examples are often not as clearly separated enough to be recognizeable
16:19 gregorycu I'll even especially follow it if I can understand how it is good
16:19 Zeno` more people should use the Lua profiler thing that sapier (?) added
16:19 sapier gregorycu: we don't wanna force any mod structure that's up to everyone elses opinion
16:20 est31 good to know there is one
16:20 gregorycu good for you
16:20 gregorycu Because when I said provide guidelines, and good examples
16:20 T4im for example everyone seems to copy isolating crafting recipes into own crafts.lua files or similar.. this is _bad_ design, as it breaks functional cohesion.. put the recipes to their node definition! and separate node from node instead of layer by layer (nodes, abs, crafts each in own file just makes you have to edit every single file every single time)
16:20 gregorycu I actually meant rules that must never be broken
16:20 sapier yes it's been added because it's always been mobf to be blamed about bad minetest performance ... while it's quite often been a different mod causing the lag
16:20 T4im this is bad design copied from default:
16:20 jin_xi a collection of best practice example code for "how can i..." type questions would be nice
16:20 T4im fix default, and you have that less often in mods
16:22 est31 like give a nice register_lossless_abm method ppl can use before they start forceloading
16:22 sapier jin_xi: you are the modders you're free to maintain this database us core devs are quite busy improving the internal things ... and trying to gain performance even for abusive mods ;-) at least most times
16:23 impact joined #minetest-dev
16:24 sapier pipeworks issues for example aren't fixable in general because forceloading is against basic design decisions ... that's why the api is "use on your own risk" too
16:24 gregorycu Can you explain why pipeworks is broken
16:24 gregorycu What has forceloading got to do with it
16:24 sapier by design minetest is a game for players keeping as less of world active as possible
16:24 gregorycu Right, but forceloading a block is like someone standing there
16:25 gregorycu Do we support people standing in the world?
16:25 sapier exactly and if you do this too often you're gonna cause a lot of server load
16:25 T4im less bad as that.. someone standing there loads all the blocks around too
16:25 gregorycu We are not talking about server load
16:25 gregorycu Here, let me play the aces
16:25 sapier server has to do almost same as if a player was there
16:26 gregorycu I'm looking at one memory leak that exists in core, that is causing from creating entities
16:26 gregorycu caused
16:26 sapier e.g. handle abms handle entities
16:26 sapier AND send all of them to clients
16:26 jin_xi i think mt should also offer some flexibility, not every type of game needs all stuff. maybe a skeletal game intended for supporting more dynamic mods/machine building in singleplayer can be considered?
16:26 gregorycu This memory leaks occurs regardless if there is forceloading or not
16:26 gregorycu This has actually been discussed
16:26 sapier gregorycu: that's something different ;-)
16:27 gregorycu Oh
16:27 gregorycu But you said pipeworks was broken because people abuse forceloading
16:27 sapier yes they use forceloading causing lot of additional load, if there's a entity leak without forceloading that's a different issue
16:27 sapier yet most ppl do use forceloading and pipeworks
16:28 gregorycu Right, that's very good, but irrelevant
16:28 sapier can you provide a situation where entities are lost without forceloading?
16:28 gregorycu Yes
16:29 sapier tell me I'll have a look at it
16:29 gregorycu Just make a mod that spawns a WieldMeshSceneNode
16:30 gregorycu And that also deletes it
16:30 sapier how can a mod spawn a wieldmeshscenenode?
16:32 sapier wait, I was looking at that code some time ago because of gles2 bugs in there ... I guess you just need a nodebox inventory item
16:32 gregorycu register_entity with visual = "wielditem"
16:32 sapier you shouldn't even need a mod for it we should have those items in default game
16:33 gregorycu Ok, spawn a whole bunch of entities with that
16:33 gregorycu And make sure you clean them up properly
16:33 sapier entities don't have wieldmeshscenenodes
16:33 sapier for what I remember those are only used for the player hand
16:34 gregorycu Well, I've been looking at the code
16:34 gregorycu So, I don't know
16:34 gregorycu Your memory vs my eyes
16:34 sapier can you tell me? maybe there's some location I haven't in mind right now
16:34 gregorycu I've already found the leak
16:34 gregorycu You know, the one you were pretty convinced didn't exist
16:35 sapier ok world creation dialog is broken :-)
16:35 sapier how to reproduce? ;-)
16:35 Zeno` so are particles
16:36 T4im sapier: btw not "_if_ there's a leak without forceloading", there _is_ a leak, (puhfa told me you didn't believe him :P) and dozens of people can confirm that..  since over 2 years at least already freezing up computers occasionally by swapping gbit's to death
16:36 sapier Zeno`: what's broken on particles?
16:36 T4im gregorycu: oh you found it? :D
16:36 gregorycu Yes, I found one leak
16:36 Zeno` sapier: use of unititialised variables
16:36 T4im yay \o/
16:36 gregorycu That specifically is around "weilditem" entities
16:37 gregorycu Which is used heavily by pipewrosk
16:37 sapier T4im: we've had multiple leaks in minetest some new some old ... I doubt everyones out of memory was related to  a single bug
16:37 sapier Zeno`: line of code or precise description of error ;-)
16:37 Zeno` sapier, I believe I pasted it earlier
16:37 T4im sapier: this one behaves similar since then though.. always triggered around massive amounts of entities, even after they are gone
16:38 Zeno` I'll track it down properly tomorrow I guess
16:39 sapier what's uninitialized there?
16:39 gregorycu T4im: There looks to be another leak, this isn't over
16:39 T4im ah, still thank you :D
16:40 blaze joined #minetest-dev
16:40 sapier I guess I need to define how to report bugs ... "it's broken fix it" ain't a bug report but nonsense
16:40 Zeno` sapier, I will give the full valgrind results tomorrow
16:41 gregorycu Are there guidelines on how to report bugs?
16:41 Zeno` I wasn't going to come back online (to IRC) tonight so I didn't bother earlier
16:41 sapier well I just used valgrind and there are obviously new leaks in minetest since I last used valgrind
16:41 puhfa sapier: uh yeah, you seemed to misunderstand me the other day. i didnt use forceloading, just good old-fashioned forceful spawning of entities :P
16:41 puhfa so now we got that one cleared
16:41 Zeno` I'm not using valgrind to detect leaks. I'm using it to detect use of data (objects) that are not initialised
16:42 gregorycu puhfa: He understood you, it was just easier to blame something else
16:42 T4im sapier: you've been ignoring bug reports that even came with unit test… defining "hot to handle pull requests and bug reports" might help just as much as to define how to wrote a bug report
16:42 T4im write*
16:42 sapier nope I thought he had forceloading enabled. Yet massive entity spawning as reason ain't someting putting a bug on top priority ;-)
16:43 gregorycu What about entity leaking
16:43 gregorycu Which was what was reported
16:43 puhfa isnt there a mod that causes mined stuff drop on the ground as entities minecraft-like?
16:43 sapier if it's leaking in regular usage it's important, by now I only did understand it's happening on massive entitiy overload
16:43 Zeno` It's kind of hard to write a coherent bug report because particles.cpp is just about unreadable. So if I can't fix it I'll just paste the valgrind results
16:44 VanessaE puhfa: item_drop and item_tweaks can both do that.
16:44 puhfa i mean, that would be 'spamming' in the same sense, almost at the same rate
16:44 sapier Zeno`: a bug report contains following things:
16:44 T4im sapier: I think it only is then noticeable.. small amount of entities over longer time seem to have the same effect
16:44 sapier 1) exact version (commit)
16:44 VanessaE puhfa: and default game/engine will do that too if your inv is full
16:44 Zeno` sapier, please don't tell me what a bug report should contain :P
16:44 sapier 2) detailed desctiption what you do to cause the bug to happen
16:44 gregorycu It has to be an item spawned with the weilditem view type
16:44 sapier 3) what exactly is wrong
16:44 sapier 4) what do you expect to happen
16:44 puhfa all this ive told you :P
16:45 sapier that's only the minumum requirement!
16:45 Zeno` sapier: what I expect to happen is for objects not to be used unititialised!
16:45 Zeno` And I know how to report a bug :/
16:45 sapier well Zeno` usually ppl don't follow this rule recently but just tell somethin it's broken wehn I do some thing
16:45 gregorycu This whole conversation is a joke
16:46 gregorycu I'm going back to finding those remaining entity leaks
16:46 VanessaE sapier: to be perfectly fair, didn't you JUST say that the world creation dialog is "broken", without giving an exact description of how broken it is? :)
16:46 puhfa isnt that worth knowing as well? even tho it might not be a full bug report fully investigated pointing to a source line you need to change and probably even a piece of code for you to put there
16:46 VanessaE gregorycu: where do you stand on that btw?
16:46 Zeno` I will post a bug report tomorrow if I cannot fix it
16:46 Zeno` I've already said that
16:46 VanessaE gregorycu: or rather, how deeply is pipeworks involved in it?  I'm a tad lost
16:46 puhfa i mean, people who report these things are doing charity there
16:47 sapier because it's something I'm gonna have to fix myself anyway VanessaE ;-)
16:47 Zeno` And you'll have more data than you can poke a stick at :P
16:47 gregorycu VanessaE: There is a specific bug that causes entities with visual = "wielditem" to leak
16:47 sapier of course if you don't want someone else to fix your bugs you can report it the "it's broken" way too ;-)
16:47 VanessaE sapier: while you're at it, can you tune the "client" tab a bit?  the username/password/port/server fields are a little too narrow imho
16:47 sapier nope
16:47 gregorycu Pipeworks spawns a lot of these things, so it's sensitive to this bug
16:48 sapier client tab is formspec and not my work
16:48 puhfa well its really up to you wether you only react to 'complete' reports
16:48 sapier puhfa: you can report incomplete too but chances someone is gonna fix it are way less then if it's complete
16:49 sapier if I first have to spend hours on reproducing a bug I'm not even start to fix it
16:49 puhfa and that is understandable
16:49 sapier if reproducing takes only a few min I can start fixing it within a few min ;-)
16:49 puhfa but thing is, i think there has been a pretty clear issue reported here (because i havent found no other official channel to report them), confirmed by other people
16:49 T4im sapier: as said, I've seen very slow response on bug reports including a reproducing unit test…
16:50 puhfa yet you dont seem to be interested in anything else but going on the defense
16:50 T4im that's reproduceable in seconds
16:50 sapier puhfa: best to report a bug is still a github issue there the information is at one location and everyone can find it
16:50 puhfa i dont care if its your code that is at fault here. heck, mt is a huge project and c++ is error prone
16:50 sapier that's not a matter of c++ or something else ;-)
16:51 puhfa it is when you have to handle the memory yourself (which happens to be something i enjoy)
16:51 Zeno` puhfa, it's not that huge
16:51 puhfa so in that sense leaks are expected. i just dont get the attitude
16:52 sapier all of those "automemoryhandling"-languages require a lot more cpu and memory then non auto ones ... price is developer has to take more care
16:52 sapier hmm I only see shader memory lost in regular usage
16:52 est31 sapier: its called garbage collect
16:52 puhfa thats why i like using c myself when doing recreational stuff, even though i would probably be better off with something that would hold my hand a bit more
16:53 puhfa its fun to take care of it yourself, i get it
16:53 puhfa and if you do it right, you get some more cycles which is a bonus
16:53 sapier yet who can tell me how to reproduce one of those leaks
16:53 puhfa me, T4im and i think gregorycu has managed to reproduce them as well
16:53 gregorycu With pipeworks? Have you got pipeworks?
16:53 T4im sapier: the truth is some of us are cobbling frustrated because bugreports and even finished bugfixes are being ignored… I would add a lot more of that stuff if those I did wouldn't be ignored allready… it seems features are always taken with more gratitude than bugfixes… tell us what we can do to improve that… not what we might already have tried…
16:54 sapier better without pipeworks it'd be more easy
16:54 puhfa well. just toss stuff from your inventory to the ground and pick it back up. rinse and repeat about 10000 times if you want to do it manually
16:54 sapier they're not igored we're just slow on merging pulls
16:54 gregorycu That may not be good enough
16:55 T4im sapier: you seem quicker on merging features than bugfixes
16:55 gregorycu Ease up
16:55 gregorycu register_entity with visual = "wielditem" will get you an entity which will leak
16:56 sapier I see only a single fix on first pull request page T4im anything else is a feature addon or language update
16:56 sapier and the "fix" is actually a feature addon too
16:56 sapier gregorycu: do you have that code already?
16:57 gregorycu No, I've used pipeworks
16:57 sapier how much do I have to do in pipeworks to reproduce it?
16:58 puhfa i had 64 nodes spawning/killing entities every abm, ate about 1 Gb in 10 minutes that way
16:58 gregorycu Not much
16:58 sapier puhfa: sorry but I'll first fix gregorycu's one as you're doing a hardcore benchmark and not regular usage
16:58 VanessaE sapier: seems to me a few nodebreakers and deployers in a closed loop would be enough
16:58 gregorycu Again
16:59 gregorycu puhfa is not doing a hardcore benchmark
16:59 puhfa again sapier it was not a benchmark :/ just a pipeworks machine built for regular gameplay
16:59 VanessaE [breaker] ====tubes==== [deployer] ---> back around to the breaker      several loops like that
16:59 gregorycu You're doing what you did yesterday
16:59 VanessaE with blinky plants activating the deployers/breakers
16:59 VanessaE and you placing nodes between them until the tubes are nicely full
17:00 VanessaE then just let it run on its own after thjat
17:00 VanessaE that*
17:00 sapier 64 nodes spawning killing entities every abm seems like hardcore to me
17:00 T4im the more the faster it will fill… but even a single machine like that will suffice if you are willing to wait
17:00 gregorycu It's spawns one a second
17:00 gregorycu 64 entities a second is a benchmark?
17:00 puhfa sapier: :D why does it matter anyway?
17:00 puhfa there is a leak somewhere
17:01 VanessaE or you could spawn a bunch of dummy entities
17:01 VanessaE what was the command kahrl added?
17:01 sapier yes because it's about 3/4 of maximum entities per block
17:01 VanessaE surely that's enough to trigger this bug isn't it?
17:01 puhfa so less than the maximum? doesnt sound like a benchmark to me
17:01 gregorycu You're just saying random metrics
17:01 sapier so chances you're actually overloading a block are quite high
17:01 VanessaE /dummyball or some such?
17:01 gregorycu You can overload a block?
17:02 gregorycu :/
17:02 gregorycu I missed that code
17:02 sapier wait :-)
17:02 gregorycu Is the only reason you're trying to find the leak because I found a leak?
17:02 sapier actually it's 1.5 times the max entities per block ... VanessaE wasn't this changed to more then 49 some time ago?
17:03 gregorycu This doesn't seem like an efficient way to work
17:03 VanessaE sapier: no.
17:03 gregorycu Anyway, we don't know that the 64 spawners were on the same block
17:03 gregorycu Chances are, they were not
17:03 VanessaE sapier: I think it's still stuck at 49 by default, but I raised it to 500 on my servers.
17:03 gregorycu So, it doesn't matter
17:03 sapier gregorycu: I'm just interested how wieldscenemesh is supposed to be related to entities
17:04 sapier because the only usage of this I know about is players hand
17:04 gregorycu line 950 of content_cao.cpp
17:04 jin_xi i remember some of the first mob mods used wieldmesh visuals to get non quad 3d entities on screen
17:05 kahrl so... did my suggested fix (removing the grab()) fix it?
17:05 sapier ahhh
17:05 sapier a entity can be a wielditem too
17:06 gregorycu Yes, though I think there are more leaks
17:06 puhfa the spawners actually were on the same block
17:06 sapier jin_xi: yes that's long ago
17:06 puhfa didnt know the limit was that low
17:06 puhfa anyway, the output added up. the machine itself worked perfectly, my client just leaked memory
17:06 gregorycu I have 12 spawners
17:06 puhfa dunno about the server itself
17:06 gregorycu The server is fine
17:06 sapier puhfa: try increasing max_objects_per_block above the amount of entities you do create if this fixes the error we know it's related to block overload handling
17:06 gregorycu It's not
17:07 gregorycu Because
17:07 gregorycu I found the leak
17:07 puhfa is max_objects_per_block a client-side setting? because that i can change and i can test it next monday
17:07 gregorycu And kahrl and I had the same solution
17:07 gregorycu Except it took him 10 minutes, and me 2 hours
17:07 T4im puhfa: no its serverside, and its increased usually on servers
17:07 sapier puhfa: no it's a server side setting
17:08 puhfa okay. so we must have a higher value since the machine worked
17:08 T4im sapier: we are talking client side leaks though
17:08 T4im clients have to restart after a while to empty swap and ram
17:08 sapier T4im: if a server drops a entity without telling about it beeing deleted it's gonna cause a client to use more and more memory ... although this wouldn't even be a "real" leek
17:08 sapier leak
17:08 T4im ah
17:09 puhfa that could explain what happened
17:09 puhfa still, in my opinion that is an issue
17:09 kahrl yeah, can confirm too: valgrind reports a lost WieldMeshSceneNode when I drop & recollect an item, it's fixed when the grab() call is removed
17:09 sapier we've got reason to believe this might happen for some time but without someone doing that excessive overspawning it's not a big issue
17:09 puhfa what was your fancy word for it
17:09 T4im gregorycu: you mean an additional one, or the wieldmesh one?
17:10 kahrl I don't get any other leaks (none that we can fix, anyway)
17:10 sapier gregorycu: as you found it please write a pull request so we can merge it
17:10 gregorycu I get increased memory usage over time
17:10 Zeno` you need to use massif to see the leaks
17:10 puhfa >we've got reason to believe this might happen for some time but without someone doing that excessive overspawning it's not a big issue
17:10 Zeno` valgrind won't show them because theyre'
17:10 puhfa ...
17:10 kahrl what I do get is use of uninitialized memory in Sky::Sky()
17:10 gregorycu I also have code that tracks the number of irrlight entities, and that seems to be increasing
17:10 Zeno` valgrind won't show them because they're properly deallocated when the client exits
17:11 puhfa that 'excessive overspawning' caused my os to come tumbling down in less than 30 minutes
17:12 puhfa because win7 apparently doesnt handle too well the case in which all memory is used up
17:12 kahrl http://sprunge.us/idhD
17:12 Zeno` but, massif shows them quite clearly
17:12 sapier imho everything mentione by now would fit to client believing a lot of already deleted entities beeing still alive
17:12 sapier kahrl: that's deep inside irrlicht
17:13 puhfa could an automated deletion timer solve it then pretty easily and without much overhead?
17:13 sapier no
17:13 kahrl sapier: well, perhaps we are passing an uninitialized string
17:13 sapier puhfa: if we did this we'd risk loosing entities which are still active
17:14 sapier we have to find out exactly why client and server get out of sync
17:14 puhfa hmm, thats a better approach yes
17:14 T4im wouldn't the server resend those serverside still existing ones if the client side ones were max_entities constrained too?
17:14 sapier no server only sends entities once
17:15 T4im but updates their movement/velocity etc?
17:15 sapier there's no reason to send them more then once because there's no legit reason to loose them
17:15 sapier T4im: only if something changes
17:16 puhfa so a stationary entity on the ground could disappear that way
17:16 sapier yes
17:16 gregorycu Wow
17:16 T4im unless you leave/enter the area?
17:16 gregorycu What is going on
17:16 gregorycu What's the bug? Client is dropping updates?
17:16 puhfa well, the timeout would help in our use-case but i get it that in the big picture it would only make things worse
17:16 sapier T4im:  if someone uses forceloading this wouldn't help
17:17 T4im fair enough
17:17 gregorycu What's the bug here? Client is dropping updates?
17:17 sapier gregorycu: curent working thesis is client for some reason doesn't know about a entity beeing deleted
17:17 gregorycu Thesis for what?
17:17 gregorycu The pipeworks issue?
17:17 sapier for why you need more and more memory over time
17:18 puhfa sapier: wouldnt the entities still be visible in the client eyes then?
17:18 sapier and why this occurs that often on overloading a mapblock with entities
17:18 puhfa because they were not
17:18 kahrl these getTexture() that use unitialized memory also cause these messages: "Irrlicht log: Could not load texture: "
17:18 gregorycu I have no data to suggest I'm accumulating entities
17:18 kahrl (yes, with no filename after that)
17:18 sapier puhfa: depends
17:18 gregorycu In fact, I'm sure I'm not accumulating entities, I checked that
17:18 sapier did those entities have a speed?
17:18 gregorycu That was one of the first things I checked
17:19 puhfa yes they did. but they didnt leave my sight, always disappeared before going too far even with a slight lag
17:19 sapier ok gregorycu if you're not accumulating entities the tesis is wrong
17:19 sapier what's output of valgrind if you exit?
17:19 gregorycu I'm on windows
17:20 sapier puhfa: bad because if they go out of sight they'll still have to be stored somewhere to be deleted once server tells this
17:20 gregorycu I wonder if Visual Studio has a nice memory checker
17:20 Zeno` can someone review and merge #2141 please?
17:20 ShadowBot https://github.com/minetest/minetest/issues/2141 -- Create empty default constructor for MapNode by Zeno-
17:20 Zeno` I'll need it merged for tomorrow
17:20 puhfa again, they did not go out of sight, not even close
17:20 sapier Zeno`: for what do you need it if it's empty?
17:21 sapier sorry puhfa misread
17:21 puhfa they went into node inventories
17:21 Zeno` for unrelated stuff
17:21 puhfa np
17:21 sapier puhfa: do you have a small map having exactly this situation?
17:21 puhfa no
17:22 Zeno` But stuff that works with MapNode
17:22 gregorycu sapier: Visual Studio reports about 100k leaks
17:22 sapier can you guide me through building this?
17:22 puhfa maybe gregorycu can share his test map, he had the same issue
17:22 sapier gregorycu: I can't help about visual studio results
17:22 Wayward_One #2143
17:22 ShadowBot https://github.com/minetest/minetest/issues/2143 -- Minetest.conf ignored on new world creation
17:22 sapier in worst case it's a bug occuring on windows only ... rare but happens
17:22 puhfa sapier: you familiar with technic? basically i had lots of technic machines ejecting stuff, then one or two tubes and a chest receiving it all
17:23 puhfa i think T4im is running his mine testings on linux and he has experienced the same issue
17:23 roniz joined #minetest-dev
17:23 sapier Zeno`: did you check MapNode with empty default constructor creates a valid object?
17:24 sapier puhfa: sorry I'm not, I never used technic
17:24 Zeno` sapier I checked every instance where MapNode is used
17:24 puhfa i guess pipeworks blinky plant with a filter does exactly the same
17:24 Zeno` (yes, all of them)
17:24 puhfa thats what gregorycu is doing
17:25 sapier well then merge it and hope it's not gonna break something ... having a empty constructor enables you to create a object without the parameters you HAVE to supply right now ... sometimes there's a reason for not having this constructor. Yet I don't know mapblock good enough to tell about it.
17:26 Zeno` The problem was is that before there was a default constructor (by proxy because of default values)
17:26 sapier ok pipeworks installed
17:26 Zeno` sapier, before this you did NOT have to supply values
17:26 sapier why was it changed?
17:27 sapier puhfa: ok in game and in creative mode so what to place?
17:27 cib0 joined #minetest-dev
17:27 Zeno` because of https://github.com/minetest/minetest/pull/2141/files   src/voxel.cpp line 176
17:27 puhfa chest -> filter -> pneumatic tube segments connecting the arrowhead of the filter back to the chest
17:28 puhfa then a blinky plant next to the filter to make it work automatically
17:28 puhfa repeat 64 times
17:28 Zeno` Note that previously there was: MapNode(content_t content = CONTENT_AIR, u8 a_param1=0, u8 a_param2=0)
17:28 gregorycu 10 times will be enough
17:28 puhfa probably :P
17:28 gregorycu We're not doing a benchmark here
17:29 gregorycu Just want to repo the leak
17:29 Zeno` whihc was the "proxy" default constructor
17:29 Zeno` that initialised data when it didn't need to be initialised
17:29 puhfa gregorycu: unless going over the max entities per block limit has something to do with it
17:29 sapier itemwise filter injector?
17:29 puhfa actually scratch that, we had the setting set much higher so it didnt happen
17:29 puhfa sapier: will do, doesnt matter
17:30 puhfa then some stuff in the chest
17:31 VanessaE sapier: http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/Screenshot%20-%2001172015%20-%2012%3a31%3a20%20PM.png
17:31 VanessaE build a few of those
17:31 sapier argh ... mesecons too?
17:31 VanessaE sapier: yes, if you want it to run autonomously
17:31 puhfa you can always punch the filter repeatedly yourself :)
17:31 sapier I hate mesecons it's always incompatible
17:32 Zeno` sapier, the kludge was added here: https://github.com/minetest/minetest/commit/8621e6de5dc031b547739ab3ff8dc1575a284d1b
17:32 VanessaE just get latest git of it and latest git of pipeworks and they'll work together fine
17:32 T4im sapier: yes, linux here with the same issue… difference is just that I don't crash the system, but it still swaps like mad
17:33 T4im freezing up th xserver a bit (still responding, but slow)
17:33 Zeno` and now I want to remove the kludge; hence the PR
17:33 gregorycu Ok, the other leak
17:33 gregorycu Wasn't a leak, it was only happening in debug
17:33 gregorycu I think it was just Visual Studio being shit
17:34 T4im sapier: I think you have to deactivate the mesecons-compatibility mod to be compatible with current git, as that one seems to be for old releases only
17:34 VanessaE sapier: keep placing chairs in that space between the deployer and breaker any time you get the chance; you probably won't get more than 3 or so circulating through the tubes, but that's enough
17:34 sapier when did minetest get to multisecond place lag on singleplayer?
17:35 VanessaE if you set up a higher-speed timer on the wire controlling them, you can get more of them circulating.
17:35 VanessaE er, I've never had placing lag get THAT bad unless the server was overloaded
17:36 Calinou joined #minetest-dev
17:37 sapier hm mI don't have a chair guess a fence will be good enough
17:37 VanessaE sapier: example of a higher-speed timer, much more effective.  http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/Screenshot%20-%2001172015%20-%2012%3a37%3a53%20PM.png
17:38 VanessaE a fence will do, I just used a chair because it's a nodebox.  wanted to be absolutely sure it would invoke the bug (wasn't sure if just *any* drawtype would do)
17:38 Mine-aholic joined #minetest-dev
17:38 T4im VanessaE: node detector triggered?
17:38 VanessaE in the above circuit, put a whole stack of your test node into the deployer's inventory
17:38 sapier doesn't look like somethings happening at all vanessae
17:38 VanessaE T4im: that would work too but it would be slower and take longer to get started
17:39 sapier the plant blinks slowly but nothing else
17:39 VanessaE sapier: build the above second version then, put a stack of your test node into the deployer.
17:40 sapier does it work with fence too?
17:40 VanessaE it'll work with pretty much any test node, yerah
17:40 VanessaE yeah*
17:40 puhfa hmm, if drawtype really matters, the issue originally occurred with ingots and other ingot-like craft items
17:40 rubenwardy joined #minetest-dev
17:41 T4im possible.. ore processing is one of the main applications after all
17:41 gregorycu visual = "wielditem",
17:41 gregorycu Unless there are two bugs
17:42 sapier how to rotate the arrow mesecon element?
17:42 puhfa place it from a different angle
17:42 VanessaE sapier: it turns based on your facedir
17:42 VanessaE or use a screwdriver
17:43 VanessaE in my screenshot, the grey one is a delayer, the white one is a NOT gate
17:43 T4im mese sandtube might work too btw
17:43 T4im without mesecon
17:43 T4im dropping out stuff, collecting again
17:43 VanessaE T4im: this is more controllable
17:44 T4im true
17:44 sapier ok fast blink ... guess I have wrong tubes ... which ones do I have to use?
17:44 VanessaE sapier: "Pneumatic Tube Segment"
17:45 VanessaE pipeworks:tube_1
17:45 VanessaE to be exact
17:46 sapier ok all done ... still empty pipe
17:46 VanessaE now put your test node into the Deployer's inventory
17:46 T4im make sure you don't have anything in the nodebreaker inventory slot
17:46 VanessaE and yeah, keep the nodebreaker's slot empty, that's for the tool you want it to dig with
17:46 sapier ok
17:46 VanessaE (by default, it digs with a virtual mese pick)
17:47 sapier ok deployer is non empty and fence is created in between but still empty tubes
17:47 VanessaE screenshot?
17:47 T4im make sure to connect to the nodebreaker from the back, not the side or top
17:47 T4im the tubes that is
17:48 T4im side is for said inventory slot, not for the digging-results
17:48 T4im also connect mesecons from the side, mesecons has some issues when connecting diagonally to other stuff sometimes
17:48 jin_xi hm well pipeworks seems to still use wielditem for stuff in tubes
17:51 sapier grr this damn nodebreaker alwas rotates different
17:51 VanessaE heh
17:52 sapier ok better
17:52 T4im try to face the pipe you are trying to connect it to with a meter distance and build against it
17:53 sapier ok time to use valgrind
17:53 VanessaE sapier: you got it to act as in my screenshot?
17:54 sapier looks quite similar, fences move from node destroyer to deployer
17:54 VanessaE T4im: it's not so much that it has issues connecting diagonally, rather that machines have connection rules that dictate if they'll take a connection from above, which is all a diagonal connection really is
17:54 VanessaE sapier: good deal
17:55 T4im VanessaE: yea, thing is visually it does connect, just doesn't actually propagate signals then, which is sometimes confusing
17:55 sapier why does it report I am placing those nodes?
17:55 T4im meseblocks for example propagate vertically to other meseblocks but not to mesecons
17:55 VanessaE sapier: it has to use a "fake" player in order to comply with the engine's node protection code
17:55 sapier I haven't even joined completely
17:55 VanessaE T4im: ah, if it visually connects but doesn't register the signal, that's a bug
17:56 VanessaE sapier: and in this case, the "fake" player is the original placer of the node
17:56 sapier well different issue
17:57 VanessaE sapier: you're seeing a perfect example of something that needs an allowance for being ignored by the rollback recorder
17:57 T4im yea for that stuff running before fully connected we might have some input too regarding lua controllers overheating on_join, but more to that another time I guess
17:57 VanessaE (every one of those place actions is being recorded, if you have rollback)
17:57 T4im that'll spam the logs with a few machines quite a bit, huh?
17:57 sapier calloing this a diashow doesn't really match
17:58 Sokomine joined #minetest-dev
17:58 VanessaE well those "runs before you join" is just because you effectively fired up a server first and the client took a short while to "connect" to it, I guess.
17:58 sapier it's about 2fpm
17:58 VanessaE sapier: haha
17:58 VanessaE that's about right :D
17:58 T4im ya :D
17:59 sapier already enough to find the bug
18:00 VanessaE how bad is it?
18:01 sapier metadatalisthandling is broken I'll see how to fix it give me a couple of minutes ...
18:02 sapier ok I think I have it, now verify with valgrind
18:04 sapier nodemetadata.cpp L112 ... you should never clear a map containing pointers to allocated memory
18:04 sapier just use the "clear" function already implemented there
18:05 gregorycu ...
18:06 sapier gregorycu: doesn't visualstudio have a tool like valgrind too?
18:06 sapier not sure about it guess on windows you''ll have to pay for it
18:06 gregorycu I don't know, I don't have to find leaks often
18:07 sapier in minetest they're quite common
18:07 sapier "definitely lost: 0 bytes in 0 blocks"
18:07 sapier gregorycu: is your pull ready?
18:08 gregorycu No
18:08 gregorycu I don't know how to git very well, so I've hashed up a branch of mine
18:10 sapier no problem I'll push it for you what to write for author? "gregorycu" ?
18:10 gregorycu I don't care, as long as it's fixed
18:10 gregorycu gregorycu is fine
18:12 NakedFury joined #minetest-dev
18:15 ImQ009 joined #minetest-dev
18:16 sapier gregorycu: can you verify that there ain't more leaks I haven't triggerd with my example by now?
18:16 kahrl wow
18:16 gregorycu No, the memory increase over time was due to some leak checking code I inserted
18:16 gregorycu ironically
18:16 kahrl the irrlicht image readers read data from a file and don't even check if the read succeeded
18:16 gregorycu What is wow kahrl?
18:17 kahrl that's probably where http://sprunge.us/idhD comes from
18:17 sapier kahrl: I'm not really surprised ;-)
18:17 T4im gregorycu: on a side note: "none@none.none" is a problematic email, as it is connectable (as opposited to .invalid tld's or example.org/net/com for example)… a better solution might be to use the anonymizing mail-addies from github instead
18:17 kahrl (take for example CImageLoaderBMP::isALoadableFileFormat)
18:17 sapier T4im: humans usually understand what's meant and I don't care about bots ;-)
18:18 gregorycu I didn't author it, it's a fake author
18:18 kahrl ok, what leads to http://sprunge.us/idhD is this, as far as I can tell:
18:18 kahrl 1. getTexturePath returns an empty string
18:18 sapier gregorycu: good to know
18:18 kahrl 2. this is passed to CNullDriver::getTexture
18:18 T4im sapier: maybe care about inocent dos victims by those bots :p
18:18 gregorycu I was letting T4im know
18:18 kahrl 3. getTexture calls getAbsolutePath on that, this returns "/"
18:19 kahrl 4. an IReadFile is opened on "/", which succeeds (a directory is treated like an empty file by fopen)
18:19 sapier T4im: whoever takes none@none.none will recognize quite soon it's been a bad idea
18:19 T4im "<username>@users.noreply.github.com" is sponsored by github :)
18:20 kahrl 5. then createImageFromFile calls the various image loaders' isALoadableFileFormat methods, which don't check if the reads succeed
18:21 gregorycu Night all
18:21 T4im oh, he was gone fast… wanted to thank him first, :S
18:21 T4im thank you too sapier
18:21 T4im these fixes are very appreciated
18:22 sapier well thank VanessaE she provided the example I needed to fix it
18:22 kahrl note that each of my listed steps 2 to 5 is missing error checking :D
18:22 sapier without her help It'd have required hours to reproduce it just to do a 1min fix
18:22 T4im would a mts for unit testing help in cases where lua scripting can't assert?
18:22 T4im like this
18:22 T4im for the future that is
18:23 VanessaE sapier: and *gasp* I got you to install two mods and play the game for a while ;)
18:23 VanessaE (well pipeworks was gregorycu's idea really)
18:23 sapier well another 3mb of precious ssd space wasted for mods ;-)
18:24 VanessaE haha
18:25 sapier btw he didn't tell about this two changes really fixing all issues can someone verify this?
18:25 sapier puhfa: are you able to compile mintest yourself?
18:25 nrzkt is DSTACK(__FUNCTION_NAME); used somewhere ?
18:26 kahrl nrzkt: press p in-game to see what it is used for :)
18:26 puhfa sapier: probably not. i have a very old version of mingw only.
18:26 nrzkt ty kahrl
18:26 VanessaE I'm updating both my client and my servers now.  the latter will take effect at the next restart
18:26 puhfa so anything post c++98 and it wont work
18:26 * T4im will test the commit too
18:27 T4im commits*
18:33 sapier nrzkt: DSTACK is debugging code
18:35 sapier puhfa: ok then we have to wait till you get a version containing these fixes to find out if they fix your issue. I'd expect you to have additional problems.
18:38 Megaf joined #minetest-dev
18:44 hmmmm do you guys have an opinion on lens glare for light sources?
18:45 hmmmm basically, an IBIllboardSceneNode centered on a light source node whose texture is a mostly transparent circle or something that gets colored to whatever color the light source eminates
18:45 Calinou good, as a setting?
18:45 sapier imho that'd be to realistic for rest of minetests graphics
18:45 hmmmm lol.
18:45 hmmmm calinou:  i was thinking more or less definiable by mod
18:46 Calinou the flare could be cubic if you wanted
18:46 hmmmm you'd want this for torches maybe, not so much for other thing
18:46 hmmmm other things* like furnaces
18:47 Calinou lens_flare = {r = 255, g = 255, b = 255} like this?
18:47 hmmmm yeah, i could do that
18:48 T4im a sprite fake one, or a real one?
18:48 Calinou changeable colour would be good to fake coloured lights
18:49 sapier VanessaE: https://github.com/minetest/minetest/pull/2132 does this match what you meant with hiding chat button too?
18:49 hmmmm the reason why i'm hesitant on making it rgb user specifiable is because if you make the flare color different from the light color then it'd look odd as you get closer to it
18:50 VanessaE sapier: yes, basically that.  I'd put it over on the right, below the other one, though.
18:50 VanessaE btw, what does the "down arrow" do?
18:51 sapier drop an item, that's why I kept it there so you can touch it without having to take hand off
18:52 sapier as I made the buttonbar generic moving it around ain't a big deal
18:52 VanessaE sapier: ah, ok.  fwiw, it might make more sense if that icon were a tiny cube with the arrow curving from it to the "ground line"
18:52 VanessaE e.g. suggesting the motion of an item when you see someone in-game drop it
18:53 sapier I didn't invent that icon but I agree to your suggestion. yet I'm not capable of realizing this suggestion ;-(
18:54 VanessaE need me to draw it?
18:55 sapier sure you're welcome ;-)
18:55 VanessaE what sizew?
18:55 VanessaE -w
18:55 sapier I'd suggest same size as current, but it's scaled to fit the buttonbar anyway
18:55 VanessaE idk what the current size is :)
18:56 VanessaE there it is
18:56 VanessaE 64px
18:58 puhfa sapier: the server wont be online before monday anyway
18:59 puhfa but if it fixes any issue ill be happy, even if mine would still persist
18:59 sapier if you find a easy way to reproduce just tell me
19:00 sapier usually the hardest thing about leaks is reproducing it once this is done the fix is trivial .. most time ;-)
19:00 puhfa without building the actual machine i think thats as close as anyone can get
19:00 puhfa we have had the same in both linux and windows builds since at least 0.4.5
19:00 est31 sapier I can write a replacement for game#395, introducing mintetest.register_lossless_abm
19:00 ShadowBot https://github.com/minetest/minetest_game/issues/395 -- Make furnace work even when unloaded by Kalabasa
19:00 est31 does that sound good?
19:01 sapier writing yes .. your name for that function no
19:01 est31 other ones
19:02 sapier register_timekeeping_abm or something like this
19:02 sapier and of course you have to add a separate metadata variable for each abm
19:02 puhfa heh, make the function name long enough to avoid unnecessary overuse :)
19:02 T4im is it still an active bm? ;)
19:03 puhfa register_enhanced_amb_factory_solution_builder
19:03 sapier lossless supposes the other one misses things which just ain't true
19:05 est31 register_timekeep_abm?
19:06 sapier ok
19:06 T4im isn't it more like a lazy block modifier? :D
19:06 sapier no most time coder is lazy not the abm
19:08 est31 ok it gets the time of offload, or a number of times it should have been called but didn't get?
19:08 sapier why? number of times? if someone really needs this it's a simple division
19:08 * est31 would prefer second
19:09 T4im why not use notetimers for that anyway? they return the time it was unloaded included
19:09 T4im nodetimers*
19:10 sapier good question I never used nodetimers so if they do it this way why modify abm at all?
19:11 * est31 points at https://github.com/minetest/minetest/blob/master/src/nodetimer.h#L30
19:11 T4im they do.. noticed then with the bones mod (they never timed out in active blocks, only if they were unloaded for a certain time)
19:11 T4im est31: hehe, nice one
19:12 sapier hmm it's already suggest to be used for this ;-)
19:12 sapier guess 395 should be rewritten using a node timer
19:13 T4im keep in mind, that after each time it is being called it snaps the parameter-passed time back to 0
19:14 VanessaE sapier: http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/drop_btn.png  (it'll be white on white in the browser, so download it and view in GIMP or something)
19:15 kahrl new PR: #2144
19:15 ShadowBot https://github.com/minetest/minetest/issues/2144 -- Fix use of uninitialized data in Sky and (potentially) GUIChatConsole constructors by kahrl
19:17 sapier https://github.com/minetest/minetest/pull/2132 additional comments? (screenshots included!)
19:18 VanessaE you didn't put my image in! D:
19:27 loggingbot_ joined #minetest-dev
19:27 Topic for #minetest-dev is now Minetest core development and maintenance. Chit-chat goes to #minetest. Consider this instead of /msg celeron55. http://irc.minetest.ru/minetest-dev/ http://dev.minetest.net/
19:28 roniz joined #minetest-dev
19:40 sapier http://www.fileconvoy.com/dfl.php?id=g9c63a08b33eb932899961019369bd677d164a74aa VanessaE latest apk package for you containing your icoon
19:40 sapier -o
19:41 VanessaE \o/
19:52 sapier does it work VanessaE?
19:53 VanessaE I haven't tried it, don't have the tablet handy right now
19:53 sapier ok
19:55 ElectronLibre joined #minetest-dev
20:01 casimir joined #minetest-dev
20:06 Hunterz joined #minetest-dev
20:30 VanessaE bbl
20:50 [ElectronLibre] joined #minetest-dev
20:56 kilbith any objection to format the README in .md ?
20:57 est31 freeminer has markdown
20:57 kilbith it's more lisible
21:36 ElectronLibre left #minetest-dev
21:41 acerspyro joined #minetest-dev
22:11 kaeza joined #minetest-dev
22:18 Garmine joined #minetest-dev
22:43 roniz joined #minetest-dev
22:53 Garmine42 joined #minetest-dev
23:04 nrzkt left #minetest-dev
23:23 shadowzone joined #minetest-dev
23:25 sapier left #minetest-dev
23:42 Sokomine joined #minetest-dev
23:51 hmmmm allrighty
23:51 hmmmm i'm back

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