Time  Nick         Message
00:00 PilzAdam     hmmmm, works
00:03 hmmmm        good to push to upstream?
00:03 hmmmm        did you push minetest_game yet?
00:03 PilzAdam     yep
00:03 PilzAdam     done
00:04 hmmmm        great
00:04 hmmmm        now we have a new way to kill peoples' framerates - no tesselation needed
00:24 hmmmm        hah.. noticed something funny, only like half of the leafs decay when you cut down a jungle tree
00:26 PilzAdam     hm?
00:27 PilzAdam     oh, the stl bug...
01:06 Exio         wow, now i can (here) barely "walk to a ungenerated" chunk with the last git + luajit
01:07 Exio         before i had to wait some seconds for the mapgen
01:24 proller      HUGE caves in new mapgen - https://github.com/minetest/minetest/pull/549
01:25 hmmmm        woah
01:25 hmmmm        erm anyway, i'd like to merge the indev stuff, care to squash that?  same with the OGLES2 build
01:26 proller      ok, 3 mins..
01:27 ShadowNinja  hmmmm: how about merging this https://github.com/minetest/minetest/pull/453
01:27 hmmmm        that
01:28 ShadowNinja  I thought that maybe it should use tables due to the number of arguments
01:28 ShadowNinja  but otherwise...
01:28 hmmmm        i'd need to manually merge it
01:29 ShadowNinja  well please do, I think this will allow for doing a lot of cool things
01:30 proller      hmmmm, https://github.com/minetest/minetest/pull/549/files - ready
01:31 hmmmm        okay i have a lot of stuff to do now... hrmm
01:31 hmmmm        shadowninja, you also had another thing you wanted to merge?
01:31 hmmmm        it was a bugfix or something if i recall
01:31 ShadowNinja  yes, allowing minetest.after to take a variable number of arguments I think you mean
01:32 hmmmm        yeah that
01:32 hmmmm        i don't think that'll cause any compatibilitys with current lua code, right?
01:32 hmmmm        i'll do that one first since it's the easiest
01:33 ShadowNinja  yes, I am pretty sure it is backwards compatible
01:33 hmmmm        'pretty sure' ?
01:33 ShadowNinja  I would have to test to be sure
01:33 hmmmm        probably a good idea to test
01:34 ShadowNinja  I am about 95% sure
01:34 proller      hmmmm, https://github.com/minetest/minetest/pull/526 - ready too
01:35 VanessaE     hmmmm: can you also push the luajit stuff to master?  I think it's pretty safe to assume it works properly.
01:35 hmmmm        yes
01:35 VanessaE     (there's no pull request that I am aware of, though)
01:35 hmmmm        alright the protocol version bump.... will that cause incompatibilities?
01:36 hmmmm        it shouldn't since you're only adding new packets, but
01:37 Exio         as far as i know the actual client will ignore the packets, but not sure
01:40 ShadowNinja  hmmmm: tested and it works with a luacontroller that uses the old minetest.after
01:42 ShadowNinja  Also, looking through the list I would like ipv6 support and the attachment bug fix
01:43 proller      ++ipv6
01:44 hmmmm        oh god ipv6 support
01:44 hmmmm        i won't be able to test that, i have ipv6 support disabled on my OS
01:46 hmmmm        ahh proller i like what you're doing with the caves
01:46 hmmmm        i was going to start on something like that
01:47 hmmmm        need to find a good way to split that function up first
01:47 ShadowNinja  I don't know what I would do to test it other than try connecting to ::1, assuming my OS has it enabled
01:48 proller      next steps - to make huge caves thinner, and maybe caves like crack
01:49 hmmmm        proller, scaleindev, right?  not mapgenindev
01:50 ShadowNinja  it has a few conflicts
01:50 hmmmm        hm
01:50 proller      yes, scaleindev
01:51 proller      mapgenindev was first mapgen dummy with all from v6
01:51 hmmmm        right away i see a cave that would've had water on the bottom that doesn't
01:53 proller      not understood, cave without water?
01:53 hmmmm        can't really point out what, but the cave systems are different too
01:53 hmmmm        they remind me more of 0.3.x caves
01:53 hmmmm        yeah, a large cave on the surface that's not filled with water_source up to water_level
01:53 proller      cave.flooded = large_cave && ps.range(0,4);
01:54 proller      every 5 cave is dry
01:54 hmmmm        yeah i definitely feel like these caves are an improvement
01:55 hmmmm        now let me see the far thing
01:55 proller      teleport 30000,0,30000
01:55 proller      mountains higher
01:55 proller      and more huge caves
01:58 hmmmm        ahhh need to disable clouds
01:58 Exio         what about making them start in 3000 or 4000?
01:59 VanessaE     clouds at +1000 seems fair to me
01:59 Exio         i was talking about the high mountains
01:59 ShadowNinja  wow, even I was able to solve the merge conflicts in ipv6
01:59 VanessaE     hah, misread again :)
02:00 proller      Exio, they grow gradually
02:00 Exio         oh, nice
02:00 proller      at center - current scale
02:01 hmmmm        well i must say, that does look very neat
02:01 proller      at +-30000,0,0 - x3, +-30000,0,+-30000
02:01 proller      - x6
02:01 hmmmm        but all it really does is effectively cancels out terrain_higher and makes terrain_base's scale huge
02:02 hmmmm        can't i get a similar result by playing with mgv6_np_terrain_base in the config?
02:02 proller      increase scale
02:03 proller      #mgv6_np_terrain_base = -4, 120, ...
02:04 proller      #mgv6_np_terrain_higher = 20, 96,...
02:05 proller      but you get high mountains at center too
02:06 hmmmm        so basically, you just specific regions to have these high mountains
02:06 proller      yes
02:07 hmmmm        sounds like the extreme mountain biome, no?
02:07 hmmmm        each biome has its own noiseparams so it can change scale, complexity, etc.
02:07 hmmmm        this is part of mapgen v7 though
02:08 proller      maybe like this
02:08 proller      my idea in forcing the player to explore world
02:09 ShadowNinja  well connecting to ::1 does not work, maybe my os does not have ipv6 support enabled
02:09 proller      ping ::1
02:09 proller      ping6 ::1
02:09 ShadowNinja  that works
02:11 Exio         between 1 to 100 how "progressed" is the mapgen v7? -50?
02:11 hmmmm        -50? haha... more like 50
02:11 hmmmm        i have most of the 'stuff' there, i need to make it work better however
02:12 Exio         ah
02:12 ShadowNinja  0000:....:0001 doesn't work either
02:14 ShadowNinja  ah, I think I got it
02:17 ShadowNinja  well ipv6 works
02:21 proller      huge caves needs dragons 8)
02:21 proller      they like new biomes
02:22 VanessaE     G*d no
02:28 proller      hmmmm, ups, src/noise.cpp : 527 forgot debug comment
02:28 hmmmm        yeah i am fixing that along with a bunch of other stuff
02:28 hmmmm        minor things
02:31 proller      thank you
02:32 hmmmm        PilzAdam, you have it backwards... water_flowing/water_source + lava_source = obsidian, it's lava_flowing + water_source = stone
02:45 hmmmm        also your fix new_style_water... what's up with that?  i just tried it right now and i am actually seeing the old style water
02:45 hmmmm        that is, the water is perfectly level with other blocks instead of offset a little
03:07 Exio         ehh, i just tried /clearobjects in my testworld, (150~200) mb
03:08 Exio         minetest is now using 4 gb of ram
03:08 VanessaE     you'll need about 7 GB of RAM to handle a ~300 MB map.
03:09 Exio         how is the relation, the chunks/mapblocks in map ^300? :P
03:09 VanessaE     heh
03:10 Exio         and what about the time (and what cpu do you have in that server?)
03:11 VanessaE     in my case I think it took about 20 minutes to run that command last time I did it.  (Phenom II X6 1055T 2.8 GHz with 12GB RAM)
03:12 Exio         hm.. no, i'm in the new test world (the other was in my laptop before) this is only 115M
03:12 Exio         00:03:07: ACTION[ServerThread]: singleplayer clears all objects 00:11:23: ACTION[ServerThread]: object clearing done
03:12 VanessaE     well for me it was done in an active multiplayer map
03:13 Exio         i don't play in servers because my network
03:14 Exio         now minetest didn't free-ed the memory used for /clearobjects
03:14 VanessaE     I know.
03:14 VanessaE     you'll have to restart the game
03:14 VanessaE     does it on linux also
03:14 Exio         i'm in linux
03:14 VanessaE     oh ok
03:15 VanessaE     well then ignore that last statement :D
03:15 Exio         hehe
03:24 Exio         any way to "speed up" the flowing of water?
03:27 VanessaE     dunno
03:28 Exio         hm
03:28 Exio         ok
03:34 hmmmm        exio, liquid_update
03:35 Exio         thanks :P
03:36 hmmmm        clearing all objects on the map is understandably intensive
03:36 hmmmm        probably something best done offline, no?
03:36 VanessaE     hmmmm: but 7GB for a 300MB map?  that isn't intensive.  that's insane.
03:36 hmmmm        i believe there is some sort of setting to limit the number of loaded blocks
03:37 hmmmm        client/server_unload_unused_data_timeout... ehk.  alright, we need some sort of setting for that i guess
03:37 Exio         wow!
03:38 Exio         liquid_update=0.05
03:38 Exio         place lava in a "hill"
03:38 hmmmm        laggy as crap?
03:38 Exio         wait 2 seconds and you will have a lava lake
03:38 Exio         nope
03:38 Exio         i only get 170 fps now, 190~ before, nothing much really
03:38 hmmmm        wahh
03:38 hmmmm        that is insane
03:39 Exio         wut, what is insane?
03:39 hmmmm        what kind of card do you have
03:39 Exio         gpu? a cheap and rebranded nvidia gt 610
03:39 Exio         (+ fx x6 6100 as cpu)
03:39 VanessaE     my HD6870 can't even manage a consistent 60 fps with default textures
03:40 Exio         i'm using default textures, i don't want to make the loading time "longer"
03:42 Exio         what happened hmmmm? :P
03:43 hmmmm        Xorg screwed up again
03:43 hmmmm        i really need to fix that sometime
03:43 VanessaE     it's X.  you can't fix it. :-)
03:44 Exio         haha, now i got a lagspike, when placing a water source near the hill, other hill of cobble now
03:44 Exio         VanessaE: mir!
03:44 VanessaE     Exio:wayland!
03:44 hmmmm        i have to do it myself too, since Xinerama (i don't actually use xinerama, it's just fake xinerama) is depreciated with no replacement might i add
03:44 VanessaE     ;)
03:44 VanessaE     actually I don't know which would be the best when put head-to-head
03:44 hmmmm        the state of multi-monitor configurations under Xorg:  shit
03:45 VanessaE     hmmmm: amdcccle makes it pretty painless
03:45 hmmmm        this is depressing
03:45 VanessaE     at least for ati card.s
03:45 VanessaE     cards*
03:45 hmmmm        yeah but you don't have an ati and an nvidia card mixed
03:45 hmmmm        i do
03:45 VanessaE     ouch
03:45 VanessaE     talk about dogs and cats lying together.  you trying to cause the universe to implode??
03:45 hmmmm        my primary card is an 8400gs which is my only PCIe card
03:45 hmmmm        this motherboard only has PCIe and PCI
03:46 hmmmm        soo for another card it'd have to be PCI
03:46 VanessaE     no dual-head capability on the 8400 eh
03:46 VanessaE     bummer
03:46 hmmmm        the only PCI card i had was a Rage XL 4mb
03:46 hmmmm        no i have dual head, just not triple head
03:46 VanessaE     ah
03:46 Exio         better than an trident with 1mb (dedicated!!!!!!) and rca output :P
03:46 VanessaE     I think this card can go up to four heads, but two is all the space I haave on my desk :)
03:46 hmmmm        i can't use the integrated graphics either because i have a xeon
03:47 VanessaE     Exio: watch your language!
03:47 Exio         hahaha
03:47 VanessaE     you said the 't' word
03:47 Exio         hmmmm: what xeon?
03:47 hmmmm        my only other option was an S3 Virge 2mb
03:47 hmmmm        E3-1230v2
03:48 hmmmm        i have IRC on the Rage, which is clearly not graphics intensive, and it doesn't bother me if it's only 16 bit color
03:48 Exio         ehm, wtf?
03:48 Exio         a better cpu than mine... with those GPUs?
03:49 hmmmm        yeah i have a real big disparity between gpu and cpu power
03:49 hmmmm        2012 top-end CPU with a crap GPU from 1998
03:50 hmmmm        it's because there's no way i can rationalize a video card purchase, it's totally frivilous
03:50 Exio         where do you live?
03:50 hmmmm        PA
03:50 Exio         where is PA?
03:50 hmmmm        ahh you're not from the US are you
03:50 hmmmm        i'm from the US
03:50 VanessaE     hmmmm: that's the whole point of buying a big GPU - for frivolous shit like games ;-)
03:50 VanessaE     (well and to mine bitcoins I guess)
03:51 Exio         i'm from argentina :P
03:51 Exio         lol VanessaE
03:51 hmmmm        yeah, wow
03:51 Exio         i don't see, unless you are going to be a heavy gamer, a very powerful GPU
03:51 hmmmm        why is it that all non-native english speakers here speak perfect english
03:51 Exio         what? perfect?
03:51 Exio         who?
03:51 hmmmm        you can never tell who's from the US or not without looking at the hostmask
03:52 hmmmm        well you for instance
03:52 Exio         my english is very sucky really
03:52 Exio         mid-low :P
03:52 VanessaE     hmmmm: actually it isn't just here..  back in the other channels I used to hang out on, the same was true.  most of the clientèle was from somewhere east of the Atlantic, and yet English seemed to come pretty easily.
03:53 hmmmm        i know, weird
03:53 VanessaE     I guess ESL is more common than one tends to expect.
03:53 hmmmm        maybe it's just confirmation bias because people won't come on english-speaking irc networks unless they know english well
03:54 Exio         my rebranded gt (old gpu! with ddr3!!) can handle minecraft with most of stuff enabled, redeclipse with everything enabled, 70~80 FPS, and xonotic with middle settings to 55~70 FPS
03:54 hmmmm        with this card I was able to get 120 FPS on minecraft classic
03:54 hmmmm        I played it in the browser for a little bit
03:55 Exio         i never tried to do that
03:55 Exio         i always played the "normal minecraft"
03:56 VanessaE     I wonder how this machine would handle MC.
03:57 Exio         my netbook can handle up to 7 FPS in singleplayer (mc) and 30 FPS (flat world in multiplayer, with 8 px texture pack, + a special "tune up" of variables and forcing it to be stuck in the higher frecuencies
03:58 Exio         with a X11+openbox in a gentoo optimized with -march=native and an optimized kernel
03:58 Exio         you can think without that
03:59 Exio         1.2.5 and before were playable in the laptop, now i can hopefully start it
04:03 hmmmm        dunno, try it :p
04:03 hmmmm        it'll probably be fine, probably gpu bound like most things
04:03 hmmmm        why does everybody seem to not grasp the concept of making lines less than 80 characters!
04:04 VanessaE     hmmmm: because the concept of an 80 char terminal is obsolete?
04:04 VanessaE     :)
04:04 hmmmm        for neatness
04:05 VanessaE     124 columns here at my default terminal font size
04:05 VanessaE     (not that I ever edit anything that wide in a terminal :) )
04:06 Exio         $ tput cols
04:06 Exio         318
04:07 VanessaE     jeez, do you need a microscope to read it?
04:07 Exio         nah
04:07 hmmmm        or maybe he has a maximized terminal on a 1920x1080 monitor?
04:07 Exio         1920x1080, 21.5", default fontsize
04:07 VanessaE     good thing I have new glasses on the way
04:07 Exio         yep
04:08 VanessaE     1280x1024 here, but with 13-point Liberation Mono
04:08 Exio         well, this is the first computer i has what is "decent", my main computer was a laptop for 3 years and before it an amd duron
04:11 Exio         s/laptop/netbook/
04:39 mrtux_       join #minetest-m13
04:39 mrtux_       eh
05:10 Exio         night :)
07:58 RealBadAngel i have tried for several hours to merge luajit sources into minetest tree
07:58 RealBadAngel but i have completely no experience with that, so i give up
07:59 RealBadAngel official one comes with make files only, another one with cmake files produced everything but no .a file
08:00 RealBadAngel can someone get it done?
08:06 celeron55    why are the jungle tree leaves so terribly dark
08:07 celeron55    they're like completely black
08:07 celeron55    i don't think anyone would think these'd be good
08:08 celeron55    also, where is the lovely plentiness of jungle grass in jungles?
08:08 celeron55    it's absolutely necessary!
08:19 celeron55    ...
08:19 celeron55    it's interesting to see that it is becoming evening
08:19 celeron55    and then realize that there is sunlight in a cave that has a solid stone ceiling
08:20 celeron55    the lighting that doesn't care about updating the lower chunk's sunlight based on a newly generated upper chunk's sunlight really breaks visibly with these high mountains
08:21 celeron55    hmmmm: that's your job probably 8)
08:22 celeron55    to implement that missing mechanism
09:19 celeron55    i think the junglewood shouldn't be made dark
09:19 celeron55    (like in the thread)
09:19 celeron55    (by PilzAdam)
09:20 celeron55    variation is good, and jungles are supposed to look as different as plausible in any way
09:20 PilzAdam     junglewood is dark in RL AFAIK
09:20 celeron55    who cares?
09:21 celeron55    i think we should limit the maximum weight the player can carry to 30kg
09:22 celeron55    the inspiration to my original textures on which the style of the current ones are based on was something like this: http://fc02.deviantart.net/fs51/f/2009/262/9/4/Jungle_Trees_2_by_DrachenVarg_stock.jpg
09:23 celeron55    not that exact image; the exact image was actually even closer to what the textures look
09:23 celeron55    but anyway
09:47 RealBadAngel im coding now set_yaw and set_pitch for player, question is shall is use this to send the data: https://github.com/minetest/minetest/blob/master/src/server.cpp#L3494
09:47 RealBadAngel which updates pos too
11:23 troller      sometimes when generating huge cave - Floating point exception: 8 (core dumped)
11:24 troller      #0  0x00000000004b89cf in MapgenV6::generateCaves ()
11:26 troller      i see only for(float f=0; f<1.0; f+=1.0/vec.getLength())  if its /0
11:37 RealBadAngel https://github.com/minetest/minetest/pull/550
11:37 RealBadAngel ive added set yaw and pitch for players
11:48 celeron55    troller: "floating point exception" on x86 pratically always means division by zero
11:48 celeron55    be it int or float, that's what it will output
11:50 troller      how to fix better?  like f+=1.0/(vec.getLength()||1)  ? or 0.1 ?
11:59 PilzAdam     troller, the biomes should get larger too if you move away from the center of the map
12:00 troller      PilzAdam, ok, will try
12:01 troller      like x5 larger on 30000 ?
12:01 PilzAdam     make it proportional to the mountain height
12:08 PilzAdam     anything else missing? https://github.com/PilzAdam/minetest/commit/5a9fd8f433e9d2a71266dd6b76174e84a5ebaa8f
12:12 Jordach      PilzAdam, checking
12:13 Jordach      it's good
13:53 sapier       http://ompldr.org/vaHNkcw/performance_comparison_pathfinding.pdf updated performance comparison using A* algorithm with and without prefetching cost data
13:54 sapier       whats your opinion should pathfinding load map blocks to find a path or not?
14:51 ShadowNinja  sapier: could it be made an option?
14:56 sapier       yes of course, but there are already lots of parameters to supply I wonder if it isn't already to complex
14:59 ShadowNinja  You can use tables, that way you can have default values
15:00 sapier       good idea but complexity remains (already same)
15:00 sapier       (almost same)
15:01 ShadowNinja  when would it need to load blocks?
15:01 sapier       and of course loading map blocks is a very heavy operation once this is done performance will degrade drasticaly ... and of cause in case of parameter errors it'll trigger generation of large map areas
15:02 sapier       e.g. if someone wants to find a path between two points with unloaded blocks in between
15:02 sapier       but this most likely is a very rare scenario
15:03 ShadowNinja  yes, just what I was thinking
15:03 sapier       more likely someone wants a mob to return to its origin while the origin was unloaded
15:04 ShadowNinja  or a mob trap that summons mobs
15:05 sapier       why should this happen in unloaded areas?
15:06 ShadowNinja  anyways it probably shouldn't
15:06 ShadowNinja  unless you feel like making it an option
15:06 sapier       problem is there are legit cases for this to happen but I can't decide from those where a unloaded position is an accident (e.g. miscalulation of position) and where it's ok
15:07 sapier       and if such a muscaclulation happens in worst case a complete map is generate
15:07 sapier       d
15:08 sapier       I think this is too risky
15:10 sapier       for the time being I won't make this an option, if someone has very good reasons being woth the risk I may reconsider this decision
15:56 ShadowNinja  hmmmm: https://github.com/minetest/minetest/pull/551
15:56 hmmmm        ouch
15:56 hmmmm        is it really necessary to read the fps from the settings every loop
15:57 hmmmm        once i get the atomic hashtable in minetest then we wouldn't even have to consider that
15:57 ShadowNinja  no, but that is what the main game loop does, should I also fix that?
15:58 hmmmm        well no, i'll fix that
15:58 PilzAdam     the main gameloop does that to support the /set command
15:58 PilzAdam     (I guess)
15:58 hmmmm        i love how everybody's so nonchalant about doing heavy locks inside of tight loops and their justification is "there are a lot of other things that do it even more"
15:58 hmmmm        you're right, i should go and murder three random people but that's okay because there are warlords in africa that kill thousands
15:59 * hmmmm      looks at celeron
15:59 ShadowNinja  so are you going to amend it or should I fix it
15:59 hmmmm        i'll amend it
16:02 hmmmm        dunno, maybe i'm just sensitive about this because i spend most of my time taking stuff that's crap and making it faster, that if it were done right the first time, would not be needed
16:04 PilzAdam     hmmmm, this is also important since you merged my new_style_water fix:
16:04 PilzAdam     https://github.com/minetest/minetest/issues/477
16:05 PilzAdam     now you cant see the water if you are in it
16:05 hmmmm        erm
16:05 hmmmm        "commit has since been removed"?
16:05 PilzAdam     dunno what that is
16:06 PilzAdam     (its an issue, not a pull request)
16:09 sapier       https://github.com/minetest/minetest/pull/548 Pathfinding is completed (as of now) plz review to find bugs
16:10 sapier       celeron I thought about your suggestion of starting search from different directions but I don't see any benefit in it. Maybe I missed the point yesterday.
16:11 hmmmm        by the way, shadowninja, those other setting gets are indeed in a loop, but not in the render loop which is run each frame continuously
16:11 hmmmm        so it's not really that bad
16:11 hmmmm        main.cpp, along with game.cpp, needs cleanup sometime but we'll probably never get around to it
16:11 hmmmm        if things were done the right way the first time we wouldn't have to do this
16:12 hmmmm        if i'm repeating myself, then what i'm saying is probably important
16:15 sapier       :-) we all know that hmmmm ... ok at least lots of us ... cleanup will take lot of time and won't be done tomorrow ... at some points there even are required some basic decisions first
16:15 sapier       e.g. Lua stack in environment AND server
16:16 hmmmm        again, that is huge....
16:16 hmmmm        Lua should be part of a gamedef
16:16 hmmmm        but it is, it's part of the server
16:16 hmmmm        which makes it not part of the client gamedef
16:16 hmmmm        meh i dunno
16:17 sapier       imho scriptapi is a shared component therefore it shouldn't be linked to server or environment that close
16:17 sapier       everyone issues "commands" to lua but noone really owns it
16:18 hmmmm        you wanted to make it into its own entity completely separate from server though, and get instances of it through a singleton
16:18 hmmmm        that is so messy
16:18 hmmmm        i like it best as part of server
16:18 sapier       the singleton is because of lack of working component handling within minetest
16:19 sapier       I'd prefere server containing a list of components too
16:21 sapier       each component to provide a defined interface, all components may get a interface pointer from server and call functions by using it
16:21 sapier       but we don't have anythin equivalent to this
16:24 sapier       the way it is done atm is crap server creates it an main user is environment which uses it by a lua stack pointer .... only way to protect it is aquireing big lock
16:26 sapier       celeron are you here? do you remember how lua stack usage was meant to be in original design?
16:35 hmmmm        well what's the alternative?  you'd still need the big locks if you want to do anything environment-related or whatever
16:35 sapier       but not everything is environment relatee
16:35 sapier       e.g. jeijas download feature
16:36 sapier       pathfinding has a 2-phase mode too wich could free envlock whil doing most critical parts
16:37 hmmmm        ah yeah i see what you mean
16:37 sapier       if lua stack had it's own lock async tasks could be implemented
16:38 hmmmm        now see, this is what celeron and i were discussing a while back, maybe there should be another lua interpeter for background tasks
16:39 sapier       I don't think you need a complete interpreter but of course this would be more easy too
16:39 hmmmm        also, kind of wondering if we should have lua api for explicitly locking and unlocking env/con, let's face it, lua mods can already do enough damage if they screw something up, so it's not too much power
16:39 RealBadAngel hi all
16:39 hmmmm        yeah, you'd be able to get past the GIL problem
16:40 sapier       but to do this scriptapi needs to be isolated
16:40 sapier       and of course envlock conlock needs to be accessible by scriptapi
16:40 RealBadAngel anybody was trying to get merge luajit?
16:40 hmmmm        i couldn't find the pull request
16:40 VanessaE     there isn't one yet
16:41 hmmmm        it would be really helpful to have one
16:41 sapier       luajit is missing cmake build system and there wasn't one capable to write one from scratch
16:41 RealBadAngel im askin if anybody will get it done, i have no experience at all with cmake
16:41 VanessaE     sapier: RBA's trying to do that
16:41 RealBadAngel there is one with cmake
16:41 VanessaE     was.
16:41 hmmmm        yeah luajit needs to be treated as a system library, we shouldn't try building it on our own
16:41 VanessaE     hmmmm: agreed
16:41 RealBadAngel yes
16:42 hmmmm        that's what their website says too
16:42 RealBadAngel It's strongly suggested to build LuaJIT separately using the supplied build system. Please do not attempt to integrate the individual source files into your build tree. You'll most likely get the internal build dependencies wrong or mess up the compiler flags. Treat LuaJIT like any other external library and link your application with either the dynamic or static library, depending on your needs.
16:43 sapier       hmm is there any example where minetest does something similar?
16:43 RealBadAngel https://github.com/LuaDist/luajit
16:43 RealBadAngel this one comes with cmake build
16:44 sapier       so isn't this a drop in replacementß
16:45 RealBadAngel i tried to comment out building binaries, got header files in proper place, but couldnt get static lib compiled
16:46 sapier       I see
16:54 hmmmm        it's a drop-in replacement in terms of api compatibility
16:54 hmmmm        you don't have to change any actual code to use it
16:57 sapier       I know ;-) I've already done excessive performance testing with it for pathfinding algorithms ... i thought it'd be drop in for build system too if both are cmake ... bit obviously this isn't true
17:00 thexyz       ok, so
17:00 VanessaE     build-system-wise no it isn't quite a drop-in, but you can link against the compiled .a and it'll work
17:00 thexyz       i bisected that worldedit issue
17:02 thexyz       this is the first bad commit https://github.com/xyzz/minetest-ru/commit/052512ea9fd2c5c07a9d4e881e9dfcab4a3f8a49
17:02 Exio         what WE issue?
17:02 thexyz       Exio: the one caused by my STL patch
17:02 thexyz       not really WE issue
17:02 Exio         ah
17:04 thexyz       oh wow
17:05 sapier       wow?
17:07 thexyz       found the issue
17:07 thexyz       i thought event.modified_blocks.insert(i.getNode()->getKey(), false); means event.modified_blocks.erase(i->first);
17:07 thexyz       but actually it's the same as event.modified_blocks.insert(i.getNode()->getKey(), true);
17:08 thexyz       will pull request in a moment
17:09 sapier       so no matter if true or false as second parameter its same?
17:10 thexyz       seems so
17:11 sapier       strange
17:11 thexyz       hmmmm: https://github.com/minetest/minetest/pull/552
17:14 hmmmm        ahhhhh
17:14 hmmmm        great job xyz
17:15 hmmmm        so i was completely wrong about it being in server.cpp
17:15 hmmmm        looking in the wrong place
17:15 thexyz       any other known errors related to STL migration?
17:15 hmmmm        no others
17:15 sapier       not now ;-)
17:15 hmmmm        why don't you commit that?
17:16 thexyz       well, I wanted someone to check it
17:17 thexyz       I might've fucked something other while fixing this one
17:18 thexyz       ok, I'll push it then
17:19 hmmmm        great
17:19 hmmmm        i wouldn't be able to test it anyway you know
18:13 PilzAdam     hmmmm, I found something for the backface_culling problem with water: https://github.com/doserj/minetest/commit/75fe6d3e0c7d81405b833a476ca196e2c24eb8ab
18:14 PilzAdam     but c55 told us to be very careful with stuff like this
18:26 hmmmm        alright
18:26 hmmmm        one thing
18:26 hmmmm        if we're bumping the protocol version, i'd also like to include jeija's particlespawner
18:26 VanessaE     +1
18:26 PilzAdam     yea, sounds good
18:27 hmmmm        he's gonna need to update that so it works with the latest version
18:27 sapier       increasing max entity number too? :-)
18:27 hmmmm        so the portion of time in between this backface_culling commit and the particlespawner commit will be a protocol version 16.5
18:28 RealBadAngel cool, rain will be possible :)
18:29 sapier       are particles still entities?
18:29 PilzAdam     no, not really
18:29 sapier       ok goof
18:29 sapier       good
18:29 VanessaE     hmmmm: is a bump in protocol version going to end up breaking backward compat again?
18:34 thexyz       no
18:48 VanessaE     oh good
18:50 troller      do want rain, snow, -> 1level water in core!
18:54 troller      and weather must depends from temp+humidity dynamic! maps
18:54 troller      and cloud amount
18:55 troller      and cloud type
18:56 sapier       and it'll have huricanes on warm water while blizzards if there aren't mountains stopping cold air from running to warm areas ;-)
18:58 troller      and server must have 128 cores to calculate it 8)
18:58 sapier       you forgot some factors maybe 10exp10000
18:58 troller      moving t+h maps is easy
18:59 sapier       thats's why weather simulation is only (almost) valid for about 3 days ;-)
19:05 troller      i think perlinmap3d with moving by y = time with const speed, and random smooth x,z shift with speed shifts for cloud moving
19:05 troller      and in can used for biome init
21:27 celeron55    hmmmm: do you understand you are using way more time to remake an existing thing than i most of the time had when i whipped up all this crap?
21:28 celeron55    if something is crap, it is because i wanted to make it in addition to a million other things in a limited time
21:29 celeron55    without even knowing what i actually even wanted to make
21:29 celeron55    it's prototype grade stuff for many parts
21:30 sapier1      celeron55 is this true for scriptapi integration too?
21:30 celeron55    what is "scriptapi integration"
21:30 sapier1      I'm taking about the way scriptapi is integrated to game
21:31 sapier1      e.g. the lua stack is create from server but a pointer is copied to environment and both, server and environment (concurrently) use it
21:32 celeron55    they don't concurrently use it
21:32 sapier1      yes atm they don't because of those big locks locking almost everything ;-)
21:33 celeron55    it was a design decision to facilitate getting stuff actually done instead of wiggling around with technical details that might be still completely rewritten
21:34 sapier1      so there is no deeper purpose for the way it is atm .. I already thought so
21:34 celeron55    without all the crappy code, there wouldn't be any code at all and minetest wouldn't even exist; polish is 90% of work
21:35 sapier1      yes of course better a working solution beeing creepy than none at all
21:37 sapier1      in some places within minetest there's singleton handling is this code to be removed or best practice for minetest?
21:37 celeron55    can i ask you to write so that i would immediately understand?
21:38 sapier1      I'll try
21:38 celeron55    "there's singleton handling" ...like ...what?
21:38 celeron55    i have no idea what you are talking about once again
21:38 sapier1      wait I'm looking for an example
21:42 celeron55    as far as i know, there are some singleton-like stuff only somewhere close to the main() function; those don't really matter
21:43 sapier1      e.g. SAO and CAO's use Singleton mechanism to register within factory. ... not best example, maybe it's better to see where I used it https://github.com/minetest/minetest/pull/535
21:44 sapier1      due to lack of component handling I used a singleton mechanism to isolate scriptapi/lua stack from server and environment
21:44 sapier1      imho both don't need any information about how scripting is done
21:44 sapier1      longterm solution would be replacing singleton by a server side component registry
21:45 sapier1      I hope i managed to explain it better
21:45 celeron55    the server and environment classes should be fully able to run as multiple instances
21:45 celeron55    if you're storing the lua state in a global variable, that's simply wrong
21:46 sapier1      hmm I didn't think about this usecase ... is there any situation where this happens?
21:47 celeron55    not currently, but it's good practice
21:48 sapier1      Yes I know it's meant as workaround for missing component registry but switching everything at once to this way is a very big task ... and nothing to do without conses between main developers
21:48 celeron55    it 1) makes it much easier to follow where things are stored as they never come from any magic global hideyholes, 2) not doing it makes it impossible to do unit tests on things
21:49 sapier1      you don't have to persuade me ;-) I'm with you in general
22:21 VanessaE     can someone explain this error, while trying to link latest git against luajit?
22:21 VanessaE     18:21:12: ERROR[main]: ERROR: An unhandled exception occurred: ServerError: LuaError: error: /usr/local/share/minetest/builtin/misc.lua:17: bad argument #1 to 'unpack' (table expected, got nil)
22:21 VanessaE     where is that function defined?
22:23 sapier1      hmm i know of a bug in serialize but not within misc
22:24 PilzAdam     https://github.com/minetest/minetest/commit/fc5d2074b99d22022d2bf8e693351274bc3f6d09
22:24 VanessaE     obviously that didn't work out so well
22:24 sapier1      variable but nt nil
22:25 sapier1      :-)
22:30 jin_xi       unpack? isn't that a standard lua function?
22:30 VanessaE     dunno, I've never used it
22:30 sapier1      don't know but at least it doesn't accept nil as parameter
22:30 VanessaE     I guess luajit is slightly more strict about what arguments are used with it
22:30 VanessaE     so a quick check against nil seems to be in order
22:34 VanessaE     I expect if luajit catches it, regular interpereted lua would have as well, just later on
22:52 hmmmm        quality over quantity anyday!
22:53 sapier1      what do you mean hmmmm?
22:53 hmmmm        my response to what celeron was saying earlier
22:56 hmmmm        as for the minetest.after thing, well... unpack is a standard lua function
22:56 hmmmm        (see http://www.lua.org/pil/5.1.html)
22:58 hmmmm        so i guess we'll need to pass nil if we get a nil table
22:59 hmmmm        timer.func(timer.args == nil ? {} : unpack(timer.args))  or however you do that with Lua syntax
23:00 sapier1      hmmmm I thought about the scriptapi thing, atm I see only two possible options ... 1) leave it as is with all consequences for multithreading,
23:00 sapier1      2) create a single scriptapi object implementing core <-> scriptapi interface
23:01 hmmmm        i would rather 2, but you'd have to be the person to do it
23:01 hmmmm        just be sure that it's part of Server, not some global floating around on its own
23:02 sapier1      no proble I'd cleanup the mess with different codestyles within scritpapi too but it'd be a mayor change in design
23:02 sapier1      the global thing was only a temporary solution but I doubt adding a dynamic component interface can be done this fast
23:03 hmmmm        what currently exists now was because it was done fast
23:03 sapier1      but I've got ideas how to go without the global variable
23:03 hmmmm        now it's time to add the polish
23:03 sapier1      and be compatible to any future component interface (at least as far as you can be without knowing how this future thing will be ;)