Time Nick Message 01:02 hmmmm i'm gonna try a bit harder to get above-water-level lakes for the next mapgen 01:02 hmmmm http://i.imgur.com/WiqbgvF.jpg this is ultimately what i'd like to replicate 01:53 est31 about mesh caching 01:53 est31 It requires vast amounts of memory 01:54 est31 and only pays out when you have loaded very much things 01:54 est31 perhaps set the default to disable? 01:55 est31 until it is improved so that it behaves more like a real cache 01:55 est31 right now that is responsible for a majority of the load time and a majority of the allocated memory 01:57 est31 I dont have enough insight into irrlicht to really improve the cache 01:58 est31 my idea would be: at the start, the cache is empty, and when a special rotation is requested, it gets cached. 01:59 est31 and we should add a cool-down, so that the cache doesn't behave like a memory leak for the first 600 MB 01:59 est31 (or a cap) 02:00 est31 so that the cache throws non used items out when its full 02:01 est31 will make an issue... 02:05 est31 or PR... 02:07 ShadowNinja hmmmm: Do you have a chance to look at the mailing list now? 02:07 hmmmm yeah 02:07 hmmmm i should go do that 02:10 est31 btw, idk why android is failing for #2596. It fails in the linker step because it cant find a function I use now. 02:10 ShadowBot https://github.com/minetest/minetest/issues/2596 -- Crafting speedup by est31 02:13 hmmmm est31, when you say mesh cache, do you mean VBOs? 02:14 est31 hmmmm, https://github.com/minetest/minetest/commit/dd4c21c1808acedfbcf8402c09ce9129b6ac31c7 02:14 est31 and my PR #2597 02:14 ShadowBot https://github.com/minetest/minetest/issues/2597 -- Disable mesh cache by default by est31 02:15 hmmmm oh it's already there and enabled 02:15 hmmmm I'll have to test and see what kind of different i personally see 02:15 hmmmm we should get a consensus of whether it helps or hurts the majority of people 02:19 est31 added ideas 02:19 est31 (to 2597) 02:30 hmmmm ShadowNinja: what does the Mailman list do? 02:30 hmmmm do I sign up for that? 02:31 ShadowNinja hmmmm: Well, it's a mailing list like you wanted. It doesn't really do anything unless someone sends messages to it. 02:31 hmmmm yea doing that =] 02:31 hmmmm so anymore when I go on my rants about design matters, it's going to be on the dev mailing list 02:31 ShadowNinja hmmmm: You can subscribe to receive messages from it, and I can add you as a moderator if you like. 02:31 hmmmm and if somebody asks me, I'll say, "check the mailing list" 02:31 hmmmm sure 02:32 ShadowNinja It currently requires you to send one approved message before you can send unapproved messages. 02:35 est31 hm, I can reproduce that build problem locally 02:36 est31 ah I know what the issue is 02:36 est31 or guess 02:36 est31 think 02:37 est31 the android makefile has its own file list 02:46 est31 ok android build is fixed now 02:46 est31 bye 02:54 * ShadowNinja looks at the main menu code and cringes. 02:54 ShadowNinja Pushing without popping, looking up one table a dozen times, using functions meant for function argumens for table lookups... 02:55 ShadowNinja ModApiMainMenu::get*Data has to go. 02:56 ShadowNinja Also, using globals for *everything*. 02:58 hmmmm hmmm 02:58 hmmmm ShadowNinja: do you think we should post our public keys on the main minetest.net? 02:58 ShadowNinja *shrug* 02:59 ShadowNinja I have a GnuPG key somewhere, but I may have lost it. 03:03 hmmmm are you able to modify the main website? 03:03 hmmmm my pubkey: http://fpaste.org/207139/28116607/ 03:09 hmmmm ShadowNinja, I sent something to the mailing list 03:09 hmmmm now what 03:09 hmmmm http://lists.minetest.net/archives/minetest-dev/ 03:09 hmmmm it says there's nothing posted 03:11 ShadowNinja hmmmm: 1. It has to be reviewed first. 2. Yandex's servers are being greylisted. 03:11 ShadowNinja (Temporary failure returned to see if the server will try again) 03:13 * ShadowNinja looks into whitelisting yandex 03:14 ShadowNinja Yandex is retrying a bit too fast. 03:17 ShadowNinja Aaand moderation request received... 03:18 ShadowNinja hmmmm: Should I approve it? 03:18 hmmmm yes 03:18 ShadowNinja hmmmm: Both of them? 03:18 hmmmm the first one I guess 03:18 hmmmm :d 03:19 ShadowNinja hmmmm: First approved, second discarded. 03:20 hmmmm http://lists.minetest.net/archives/minetest-dev/2015-April/000000.html 03:20 hmmmm :D 03:20 hmmmm awesome 03:20 hmmmm I wonder if I should have some kind of snarky signature 03:20 hmmmm rkwolek < AT > minetest < DOT > net 03:20 hmmmm c0ding the shit outta j0o0o0o0o 03:21 hmmmm nah just kidding 03:47 ZeraRoox +hmmmm 03:48 hmmmm ZeraRoox, what? 03:48 ZeraRoox You checked email? 03:48 hmmmm I suppose you're Fabiano Sk? 03:48 hmmmm I don't get what you're asking me to do 03:49 ZeraRoox Yes 03:50 ZeraRoox i send .doc now with details 03:50 hmmmm what? 03:50 hmmmm don't send me a .doc 03:50 hmmmm I can't even read .doc, just tell me what it is you want. stop being so cryptic. 03:51 hmmmm i'm not going through all of this effort just to decode what some random person soliciting me wants 03:52 hmmmm if I were a windows user, in fact, I'd be weary that you just sent me malware 03:52 hmmmm s/weary/wary/ 03:52 ZeraRoox sorry, i am buiness in Brazil and i need a ppl to code one project i pay good 03:52 ZeraRoox and a found u in github 03:52 hmmmm oh, a consulting gig? 03:52 hmmmm I charge $200/hr 03:52 ZeraRoox https://github.com/kwolekr/proxier 03:56 ZeraRoox i cant send details here 03:56 ZeraRoox if possible talk in private msg 03:57 hmmmm lol. 03:57 hmmmm I'm not interested in your gig 03:57 ZeraRoox ok 03:57 hmmmm and you probably can't afford me either 03:57 ZeraRoox ? 03:59 sofar hmmmm: I'd just remove him from this channel, soliciting/off-topic 03:59 hmmmm yeah 03:59 hmmmm I've never had to ban anybody from #minetest-dev though 03:59 hmmmm cept for that one spammer guy 04:01 hmmmm I just opened his .docx with the details too. it seems like he wants to make some kind of malware that redirects network connections 04:02 hmmmm this is pathetically hilarious 04:02 ZeraRoox I just enjoyed their job but if you do not have Interest okay 04:02 ZeraRoox no have malware 04:02 ZeraRoox i only need a code 04:02 hmmmm here, have a code: 001101011 04:02 ZeraRoox lol 04:06 ZeraRoox I do not understand why you're being rude 04:06 sofar ZeraRoox: you're displaying all the properties of a typical troll 04:06 sofar just stop and leave this channel 04:06 hmmmm once upon a time, talking about something non-minetest-development related would be an instantaneous ban 04:13 ZeraRoox If you have no interest okay 04:13 ZeraRoox I will retire 04:29 ZeraRoox My offer was 5k+ usd 04:29 ZeraRoox Good luck! 04:29 ZeraRoox byebye 04:29 hmmmm lol, suuure 04:30 hmmmm there was a 98% chance he wanted to scam me anyway 05:26 hmmmm oh my god i'm stuck in a world without pretty printing of STL containers 05:26 hmmmm this is horrible 05:27 hmmmm I might have to switch from clang to gcc49 just to get pretty printing 05:30 hmmmm in order to see the contents of a std::string inside of a std::list, i need to: p listname.__end_.__prev_.__value_.__r_.__first_.__s.__data_ 05:37 Calinou (-: 05:53 ShadowNinja Multi-socket listening now works!!1!11!1 :-D 05:54 sofar a server listening on multiple sockets? 05:54 ShadowNinja sofar: Yep. 05:54 sofar sorry, that shouldn't be so hard. Still nice once you get it working though ;^) 05:55 ShadowNinja sofar: You could do multi-proto before if you listened on :: and and IPV6_V6ONLY off. 05:55 sofar what's the use case? 05:55 ShadowNinja sofar: Over 2000 line changes.. 05:55 ShadowNinja And loads and loads of debugging/ 05:56 sofar well sure, it gets messy once you cover every edge case 05:56 ShadowNinja Now this will probably break in ten different ways on Windows, but at least it works here. 05:57 sofar yup :) 05:58 ShadowNinja I just have to figure out what do do with the --port option and some main menu stuff now -- and remove any debuggung things I added. 06:00 ShadowNinja Also, select() is obviously *really* inefficient since you have to iterate over every socket. I kinda want to add epoll support. But it's probably not worth it when you'll only have 1-8 sockets or so. 06:01 sofar it'll be worth it 06:01 ShadowNinja Now, if we were using TCP it might be a different story... 06:01 sofar imagine how many packets you get 06:02 sofar ah, sure 06:02 sofar still it's nice to know you're picking the best solution 06:02 ShadowNinja sofar: select is O(n) where n is the number of sockets, and with UDP yu only need one socket. 06:02 sofar I don't even know if windows has epoll 06:03 hmmmm it doesn't 06:03 ShadowNinja sofar: epoll = Linux, kqueue = BSD, fow others for other OSes. 06:03 hmmmm typically people use libevent if they want high-performance socket multiplexing for all OSes 06:03 sofar shrug, last time I programmed on windows was 20+ years back 06:03 ShadowNinja ^ (or libev) 06:03 hmmmm it's way too heavyweight for what we want though 06:04 hmmmm in any case I had planned adding support for each OSs' own high-performance-poll type API 06:04 hmmmm https://github.com/kwolekr/chiisai-bnetd/blob/master/src/conn.c#L62 i have some of it right here already 06:04 ShadowNinja If we used TCP it might be worth it since TCP uses n+m sockets, where n is the number of listen addresses and m is the number of clients. 06:05 ShadowNinja But with UDP ther'll usually only be 2 sockets. 06:05 hmmmm so basically for Windows there's only select(), no poll(). select() is what you use if you want to be portable to all platforms 06:06 hmmmm but the Super fast awesome(tm) version of select() on windows is WSAWaitForMultipleEvents() 06:06 hmmmm and as of Vista, WSAPoll(), but that's useless because it's so incompatible 06:06 hmmmm Linux == epoll, FreeBSD and NetBSD == kqueue(), Solaris has /dev/poll 06:08 hmmmm using high-performance multiplexing apis is a good optimization, but it's just that, an optimization. and frankly implementing that isn't worth the effort given the sheer amount of other low-hanging fruit because minetest is so horribly unoptimized. 06:29 jin_xi hmmmm: i tried moving particle spawner stuff to env, but not sure if i understand right: https://github.com/obneq/minetest/commit/dbcbf42cd50f430541e2b8196ca18cd39dc22e08 06:48 hmmmm looks good 06:50 hmmmm hrmm that's a very interesting way of incrementing your iterators... 06:50 hmmmm not sure I understand the logic of that expiration loop 06:51 jin_xi it used to be a vector of ids and used find 06:53 hmmmm unless i'm mistaken, wouldn't that become an infinite loop for particlespawners with an expire time of -1? 06:54 jin_xi spawners with time 0 will not expire, -1 is my crappy magic number. 06:55 hmmmm erm... sure, but that looks like a bug to me 06:55 hmmmm the iterator never gets incremented 06:58 jin_xi hmmmm: should be same as here https://github.com/minetest/minetest/blob/master/src/server.cpp#L2956 06:58 jin_xi but with for loop instead of find... 06:58 hmmmm ermm... I'm not talking about that loop at all 06:58 jin_xi oh 06:59 hmmmm https://github.com/obneq/minetest/commit/dbcbf42cd50f430541e2b8196ca18cd39dc22e08#diff-baa4d2d0ffafdec2b86baf065fba252bR1260 06:59 jin_xi oh right 07:04 hmmmm that entire loop is kind of nasty imho 07:04 hmmmm it relies on undefined behavior to work 07:05 hmmmm if this were C++11, I would recomend you write i = m_particle_spawners.erase(i); but you can't quite do that 07:07 hmmmm ah actually that is a rather idiomatic way of deleting it since you advance it to the next *before* invalidating it 07:07 hmmmm nevermind about that 07:08 jin_xi well im sure my code is mor idiotomatic than anything so every bit of help is appreciated 07:08 hmmmm lol. 07:08 hmmmm idiotmatic 07:10 hmmmm erm, maybe it'd be better to write that loop like so: http://fpaste.org/207153/14281314/ 07:12 jin_xi yes that looks better 07:12 hmmmm hey another thing 07:13 hmmmm the addParticleSpawner code looks like of interesting 07:13 jin_xi the mess in env 07:13 jin_xi ? 07:13 hmmmm so it's intentional that the id is never == 0? 07:14 jin_xi well i just took that from existing code and yes it looks like it 07:14 hmmmm so basically you just removed the std::find() for whatever erason 07:15 jin_xi yes 07:15 hmmmm you could take advantage of the fact that a std::map is ordered 07:15 hmmmm but then again, since these are numerically increasing, why store them in a map at all? 07:15 hmmmm err monotonically increasing* 07:16 jin_xi old ids get reused, or do you think it was intentional that expired ids were never deleted? 07:16 hmmmm the original code was quite poor in quality so i'm willing to bet if it's weird looking, it wasn't intentional 07:17 hmmmm well i don't know, what do you personally think? 07:17 hmmmm should there be a reason why old ID numbers can't be reused? 07:17 jin_xi i dont care about leaked id numbers, but corresponding s32s in a vector need to go 07:17 jin_xi right? 07:18 hmmmm huh? what do you mean 07:18 hmmmm oh you mean m_particlespawner_ids? 07:18 jin_xi yes 07:18 hmmmm yeah... it's quite weird 07:20 hmmmm i still think you should use a vector 07:20 hmmmm just use it for something different 07:20 hmmmm the vector would map the ID to the expiration, instead of the ...something to the ID 07:21 jin_xi so a vector of pairs or so? 07:21 hmmmm pairs? why pairs? 07:21 jin_xi id exptime pairs 07:21 hmmmm the id is the index to the exptime 07:21 hmmmm and maybe you can make an exptime of -2 or something to represent "unused ID space" 07:22 jin_xi so 'sparse' vector of exptimes indexed by id 07:22 hmmmm yes 07:23 jin_xi cool will do 07:24 hmmmm maybe like this http://fpaste.org/207156/13229114/ 07:25 hmmmm I don't think it's a fantastic idea to use floats for special values though... maybe it ought to map to a pair 07:25 jin_xi yes that was another thing i was wondering 07:25 hmmmm std::vector > m_particle_spawners; 07:26 jin_xi and indexed by id, i think i got it 07:26 hmmmm pair.first == true if the ID is taken 07:26 hmmmm float == exptime 07:26 hmmmm err, pair.second i mean 07:27 hmmmm also it's not a good idea to compare to -1 and set to -1 when you're talking about floats 07:27 hmmmm well, actually nevermind that 07:27 hmmmm as long as no conversions are being done on the number it should be consistent 07:28 jin_xi i know i should not be doing cpp... it takes me ages to come up with inadequate solutions 07:28 hmmmm -1.f == -1.f on the same processor all the time =] at least we can know that much for sure 07:28 hmmmm naw, you're okay 07:29 hmmmm it's just that comparing exact numbers as floats makes me nervous 07:29 hmmmm even though it is okay in this particular case 07:59 hmmmm you guys realize that CMakeLists.txt was broken the whole while? 08:00 hmmmm all of the cflags were being ignored and overwritten by cmake because it thinks it knows better than we do and we didn't use FORCE in set() 18:30 est31 ShadowNinja, why is yandex greylisted? 18:31 est31 mtest31@yandex.com is also my address. 18:38 celeron55 > Linux == epoll, FreeBSD and NetBSD == kqueue(), Solaris has /dev/poll 18:38 celeron55 you know what? this is sad 18:39 celeron55 i don't understand why it's so hard to make an efficient and portable interface... but oh well 18:46 hmmmm can somebody help explain to me how cmake works? i just tried building with VERBOSE=1 and got this at the link stage: http://fpaste.org/207258/28173180/ 18:46 hmmmm 1). how do I make cmake add an -L/usr/local/lib 18:47 hmmmm 2). what is that -Wl,-rpath,/usr/local/lib thing at the end which is obviously malformed 19:14 sfan5 hmmmm: I'd imagine -Wl,-rpath,/usr/local/lib: is turned into -rpath /usr/local/lib: which would be correct 19:46 kahrl isn't /usr/local/lib in the default search path anyway though 20:18 hmmmm no, /usr/lib is 20:18 hmmmm sfan5: i was asking more or less "what option does it come from" 20:19 sfan5 no idea 22:32 hmmmm pfth 22:32 hmmmm there's basically no possible way to debug C++ applications compiled using the default, base cc on freebsd 22:32 hmmmm this is really nice 22:33 hmmmm for now I guess what I can do is provide a temp patch to compile against gcc49's libstdc++ 22:33 hmmmm then people should be able to use gdb781 22:35 hmmmm or simply: don't compile using clang anymore 23:59 paramat can anyone approve my PR for mtgame? game#484 caves are making a mess of mgv6 icesheet 23:59 ShadowBot https://github.com/minetest/minetest_game/issues/484 -- Default/nodes: Make ice not ground content by paramat