Minetest logo

IRC log for #minetest-dev, 2013-09-09

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

All times shown according to UTC.

Time Nick Message
00:07 iqualfragile joined #minetest-dev
00:51 VanessaE crash report for builtin/vector.lua:  http://pastebin.com/NfbdHpXY
00:51 VanessaE idk what mod triggered this, but some basic sanity checking is probably needed on the fields that code takes
00:58 jojoa1997 joined #minetest-dev
01:01 OWNSyouAll_DESKT joined #minetest-dev
01:34 khonkhortisan yeah that's pretty normal
02:53 OWNSyouAll_DESKT joined #minetest-dev
04:25 Miner_48er joined #minetest-dev
04:39 nore joined #minetest-dev
05:14 neko259 joined #minetest-dev
05:17 Akien joined #minetest-dev
06:02 SpeedProg joined #minetest-dev
06:16 darkrose joined #minetest-dev
06:16 darkrose joined #minetest-dev
06:17 e1z0 joined #minetest-dev
06:17 e1z0 joined #minetest-dev
06:46 Calinou joined #minetest-dev
07:00 celeron55 http://lwn.net/Articles/529522/
07:00 celeron55 this explains why gnutls makes sense even while it has "gnu" in it's name
07:24 e1z0_ joined #minetest-dev
07:32 Yepoleb joined #minetest-dev
07:36 e1z0 joined #minetest-dev
07:50 iqualfragile joined #minetest-dev
08:16 Calinou joined #minetest-dev
08:43 darkrose joined #minetest-dev
08:43 darkrose joined #minetest-dev
09:51 Akien joined #minetest-dev
10:02 Ritchie joined #minetest-dev
10:25 proller joined #minetest-dev
10:43 john_minetest joined #minetest-dev
10:43 john_minetest joined #minetest-dev
10:47 proller joined #minetest-dev
10:59 jojoa1997 joined #minetest-dev
11:06 troller joined #minetest-dev
11:24 EdB joined #minetest-dev
11:49 PilzAdam joined #minetest-dev
12:05 proller__ joined #minetest-dev
12:11 NakedFury joined #minetest-dev
12:36 Calinou joined #minetest-dev
13:39 PilzAdam https://github.com/minetest/minetest/pull/911
13:39 PilzAdam this fixes all bugs and compatibility issues with liquid_range
13:49 proller__ but not removes it
13:50 PilzAdam proller__, why do you want to remove it? all bugs are fixed now
13:50 PilzAdam and you need to adjust the drawtype for finite liquids anyway
13:51 proller__ why?
13:52 PilzAdam drawing the flowing texture even if the water doesnt move is wrong
13:52 proller__ make big copypaste for not touching your changes in content_mapblock.cpp  ?
13:53 proller__ part of this fixed in liquid63 patch
13:53 PilzAdam why copy paste? just if(finite_liquid) {} else {/*my code*/}
13:55 proller__ in old liquids water never move, but drav moving texture
13:58 Zeitgeist_ joined #minetest-dev
14:02 iqualfragile joined #minetest-dev
14:03 jojoa1997 joined #minetest-dev
15:01 Calinou joined #minetest-dev
15:03 PilzAdam is anything actually wrong with #911?
15:05 jojoa1997 joined #minetest-dev
15:07 sfan5 maybe it explodes minetest...
15:18 PilzAdam sfan5, nope, tested it
15:18 sfan5 well then..
15:20 proller__ range must be removed, and used viscosity
15:21 PilzAdam proller__, no, range=0 is useful
15:21 PilzAdam I use it e.g. in Pilztest
15:21 proller__ for what ?
15:21 PilzAdam the whole game has only full nodes, I dont want flowing liquids thre
15:21 PilzAdam *there
15:22 proller__ why you use liquids?
15:23 kahrl viscosity and range are orthogonal concepts
15:23 kahrl why should the same parameter be used for both?
15:23 PilzAdam proller__, to have the special movement handling in them
15:25 proller__ im propose to patch liquid63 for old liquid and use levels instead range
15:27 proller__ its more correct and less hacky
15:28 PilzAdam how is range hacky?
15:29 proller__ content_mapblock.cpp - it must not touch it
15:33 Jordach joined #minetest-dev
15:34 PilzAdam why shouldnt the drawtype be adjusted depending on the range?
15:35 proller__ why should?
15:35 proller__ when drawing it look around to other liquid nodes
15:35 Zeitgeist_ joined #minetest-dev
15:36 PilzAdam it uses level / maxlevel to calculate the base height
15:36 PilzAdam and maxlevel is different when range != 8
15:37 proller__ its hacky!
15:37 proller__ why it different?
15:38 PilzAdam maxlevel is the number of flowing nodes that surround the source
15:38 PilzAdam so it equals range
15:39 IceCraft Hello
15:41 proller__ PilzAdam, ok, my solution change maxlevel and automaticaly works in transform/show without hacks
15:41 PilzAdam yes, thats what range does
15:42 proller__ and my levels already works for sand-gravel
15:43 PilzAdam arent we talking about normal liquids?
15:44 proller__ no problem to make it with normal
15:46 proller__ but range must be removed
15:46 PilzAdam what do you mean? do you want to add levels to normal liquids?
15:47 proller__ yes
15:47 PilzAdam how would that work?
15:47 proller__ i dont want, but i can
15:48 proller__ like variable LIQUID_LEVEL_MAX/LIQUID_LEVEL_MASK
15:48 proller__ same as your range
15:48 PilzAdam so its bascically exactly the same as range but called "level"?
15:50 proller__ its change max level, and changed range is result
15:50 PilzAdam that sounds good
15:50 proller__ visually - same
15:50 PilzAdam is it backwards compatible?
15:51 proller__ maybe with minor glitches
15:52 proller__ but smaller than current range bugs
15:52 proller__ like node with 150% height
15:53 PilzAdam with #911 there are no bugs left
15:53 proller__ ^^ and glithes only when levels changed
15:53 PilzAdam the only glitch is that on old servers the flowing liquids are at 50%
15:53 proller__ by default no glithes
15:53 PilzAdam 150% height nodes sounds rather not "minor" to me
15:55 proller__ its possible bugs, not current
15:56 PilzAdam can you just implement that so we can test it?
15:57 proller__ yes
15:57 proller__ ^^ bugs possible now between current git- and liquid63 branch
15:58 proller__ old client-server with new must works correctly, or with minor level lowering on flowing nodes
16:05 hmmmm joined #minetest-dev
16:11 RNL joined #minetest-dev
16:12 RNL left #minetest-dev
16:17 ecube joined #minetest-dev
16:20 thexyz I think #910 is a blocker
16:20 PilzAdam thexyz, I guess we are not supposed to translate that: https://github.com/minetest/minetest/blob/master/src/main.cpp#L1412 ?
16:22 kahrl any idea what could cause #910?
16:22 kahrl or what introduced it?
16:22 celeron55 PilzAdam: read the log
16:28 pitriss sfan5: hi, please, did you compiled that localsave client for windows?
16:28 sfan5 pitriss: I'll do that now
16:28 thexyz kahrl: dunno, but I bet on "Made the main menu Lua based"
16:30 pitriss sfan5: thank you very much.
16:30 PilzAdam ah, so I just translate it with "no" for german
16:31 kahrl korrekt
16:34 thexyz PilzAdam: or you just don't touch it
16:34 PilzAdam I want that the german translation is 100%
16:34 PilzAdam otherwise others might write something invalid into it
16:47 sfan5 thexyz: leveldb updated to use STL containers
16:48 rubenwardy joined #minetest-dev
16:51 thexyz great
16:51 thexyz sfan5: did you test migrations?
16:51 thexyz both ways
16:52 kahrl what is different about gettext in windows that could cause #910?
16:53 kahrl I tested the 3 languages in linux and they work (well japanese is missing some translations)
16:54 thexyz kahrl: we need to bisect it, it worked fine in the past, even with Japanese
16:54 thexyz (though I had to replace the font)
17:02 sfan5 thexyz: yes
17:03 thexyz okay, then what are objections to merging it?
17:05 * sfan5 would merge it
17:05 sfan5 (maybe in this case more than 1 core dev needs to agree)
17:07 sapier joined #minetest-dev
17:10 ShadowNinja When I tested the levedb pull I noticed that loading singleplayer worlds took a lot longer, particularly the "Item Definitions..." step. Has anyone else noticed that?
17:10 sfan5 nope
17:10 celeron55 i'd say that is impossible to happen
17:11 celeron55 hmm, well, it could be possible if opening a leveldb world takes long
17:11 celeron55 does it fully index it somehow each time?
17:12 celeron55 sqlite does practically nothing if time is considered
17:12 AllegedlyDead joined #minetest-dev
17:13 thexyz meh who cares
17:15 OWNSyouAll_DESKT joined #minetest-dev
17:17 PilzAdam sfan5, I cant create a world in the leveldb branch
17:17 PilzAdam terminate called after throwing an instance of 'BaseException'
17:17 PilzAdam what():  Unknown map backend
17:18 sfan5 "backend =" line of world.mt?
17:18 PilzAdam backend = sqlite3load_mod_basejump = false
17:19 PilzAdam I guess a \n is missing there
17:19 sfan5 yep
17:19 celeron55 how is that possible
17:19 sfan5 map.cpp forgets to write std::endl
17:19 celeron55 wat
17:19 sfan5 s/map.cpp/whatever-file/
17:20 sfan5 subgame.cpp:245:ss<<"gameid = "<<gameid<<"\nbackend = sqlite3";
17:20 sfan5 this
17:21 sfan5 fix pushed!
17:22 celeron55 so what did you fix? that has a newline already
17:23 celeron55 ah, at the end
17:24 PilzAdam that works
17:24 celeron55 one thing is for sure: it NOTHING should rely on having a newline at the end
17:24 celeron55 that must be fixed
17:24 celeron55 -it
17:25 thexyz not in leveldb branch
17:25 sfan5 thats fault of the lua code that handles the configure menu IIRC
17:25 celeron55 this bug is made by sapier in builtin
17:25 sfan5 s/fault/the fault/
17:26 sapier subgame.cpp?
17:26 sfan5 subgame.cpp writes world.mt on creation
17:26 celeron55 sapier: modmgr.lua is buggy
17:27 celeron55 it fails to create a valid file if world.mt does not have a newline at the end
17:27 celeron55 results in stuff like "backend = sqlite3load_mod_basejump = false"
17:27 sapier I'll have a look
17:27 celeron55 it should work in any case regardless of newline
17:28 PilzAdam AFAIK there were also issues with a blank line before the mod list, maybe look at that too
17:32 thexyz so are we merging it?
17:32 PilzAdam thexyz, Im testing currently
17:32 thexyz ok
17:36 PilzAdam how is --migrate supposed to work?
17:37 PilzAdam $ bin/minetest --world worlds/DB/ --migrate leveldb  just starts Minetest for me
17:37 kahrl what was the consensus on bundling leveldb?
17:37 sfan5 add --server
17:38 sfan5 the --migrate command only works when using minetestserver or minetest --server because it needs a server instance to convert the world
17:38 PilzAdam sfan5, why? doesnt make sense to me
17:38 thexyz leveldb is not advised to be used on client
17:38 PilzAdam it should be at least documented
17:38 PilzAdam (in --help or so)
17:38 sfan5 fine
17:38 PilzAdam also, "Don't forget to update your world.mt backend setting!" why doesnt Minetest do that for me?
17:38 sfan5 well it should actually do that
17:40 neko259 joined #minetest-dev
17:40 thexyz PilzAdam: it's a bad idea
17:41 sapier I can't reproduce your issue if I create a line at end of world.mt without newline it's still working
17:41 PilzAdam thexyz, hm?
17:41 sfan5 sapier: create a new world, remove the newline at the end of world.mt, use the configure menu
17:42 sapier that's what I did no problem
17:42 thexyz example: you're a server owner, you use leveldb; you also want to export map to sqlite (you want to email it to your friend who uses windows and has no leveldb support); you run --migrate, minetest changes backend to sqlite, whoops
17:42 sapier only open the configure menu or do something in there?
17:43 PilzAdam ah, migrate just copies the world to another format
17:44 PilzAdam so the disk space usages doubles
17:44 thexyz yes
17:44 sapier I guess it's relate to backend, I didn't know about any backend key within world.mt when writing that code
17:44 thexyz yea, it's ~doubles
17:44 thexyz s/'s//
17:44 PilzAdam I guess "migrate" is the wrong word then
17:45 thexyz why are you so picky today?
17:45 thexyz suggest something, at the very least
17:45 PilzAdam at least in --help you should write "copies map into another format"
17:45 PilzAdam ^ this is a suggestion
17:45 sapier why is converting a map called migration?
17:46 sfan5 what about we have --convert and --migrate?
17:46 sapier what's the difference?
17:46 thexyz because you migrate from one map backend to another one
17:46 sfan5 convert just converts, migrate actually updates world.mt
17:47 sapier to me migration is something on the fly while conversion is something done offline
17:47 sapier but maybe this is my personal interpretation
17:48 sapier sfan5 can you give more details to your newline issue?
17:48 sfan5 PilzAdam was having the newline issue
17:49 PilzAdam sapier, subgame.cpp:245  if you remove the "\n" there then it adds the first mod in the same line
17:49 sapier celeron55 it's not missing newline but missing value
17:50 sfan5 can we merge leveldb now?
17:50 sapier backend = <something missing here!>
17:50 PilzAdam sfan5, --migrate should also delete the old format
17:50 sfan5 sapier: not possible
17:50 sapier btw there's no support for "backend" keyword in modmgr too as that parameter wasn't there by now
17:51 sfan5 modmgr filters the values in world.mt by name instead of just keeping the old ones, bad idea
17:51 sfan5 s/,/? /
17:52 PilzAdam "migrate" means to me: move away from something to something else
17:52 thexyz sure
17:52 sapier modmgr rewrites the whole file so no filtering at all
17:52 PilzAdam and the "move away" part is currently missing in the --migrate command
17:52 thexyz so let's delete old map
17:52 thexyz and if new one doesn't work then well
17:52 thexyz bad luck
17:53 sapier I guess we have another "world.mt" could be lost issue here
17:53 PilzAdam thexyz, people make backups anyway
17:53 thexyz lol
17:53 thexyz PilzAdam: nice world you live in
17:53 PilzAdam Minetest isnt very friendly to world data anyway
17:53 thexyz so let's make it even more unfriendly
17:53 thexyz because people are used to it
17:54 sapier if you want to merge the leveldb support you need to add support to modmgr to this too
17:54 thexyz how about a vote? I'm against old world deletion
17:54 * sfan5 too
17:54 PilzAdam I think it should be optional
17:55 thexyz okay, let me rephrase
17:55 sfan5 anyway how is deleting the old format supposed to work? there is no function for that in the Database class
17:55 thexyz I'm against old world deletion and there shouldn't be an option for it because every sane human can execute rm by hand
17:55 sfan5 ^
17:55 Zeg9 joined #minetest-dev
17:56 PilzAdam if you want to migrate a 10GiB map then you need another 10 GiB free disk space
17:56 PilzAdam would it be possible to remove the blocks that are converted from the old database while converting?
17:57 sapier are you really complaining about 10gb of disk space ? :-)
17:57 PilzAdam so you basically move them, instead of copying
17:57 thexyz meh
17:57 thexyz okay
17:57 ShadowNinja PilzAdam: The code deletes the blocks in memory I beleive, but doesn't save.
17:57 sfan5 doesn't this delete it? https://github.com/sfan5/minetest/blob/leveldb/src/main.cpp#L1260
17:57 sapier nobody sane will risk complete loss of map due to on the fly deletion
17:57 PilzAdam --migrate <value> <copy/move>  would be ok to me
17:58 thexyz now I shall rephrase again
17:58 thexyz I'm against old world deletion and there shouldn't be an option for it because every sane human can execute rm by hand and there shouldn't be an option for on-fly chunks deletion
17:58 thexyz sfan5: it unloads them from memory
18:01 PilzAdam imagine a server admin having a VPS with 15 GiB disk space and a 9 GiB Minetest world; he isnt able to migrate to leveldb because there is simply not enough disk space
18:02 thexyz PilzAdam: I think leveldb should be merged in its current state and only then options like this should be implemented
18:03 Miner_48er joined #minetest-dev
18:03 PilzAdam it isnt something that blocks a merge
18:04 thexyz okay, so you're not against it
18:04 PilzAdam but as kahrl said, do we really need to bundle leveldb?
18:04 thexyz do we really need to bundle sqlite
18:04 thexyz do we really need to bundle lua
18:05 thexyz do we really need to bundle jthread
18:05 PilzAdam jthread: yes, we modified it
18:05 PilzAdam lua: yes, we need to be sure that 5.1 is used
18:05 PilzAdam sqlite: would it work on windos without it bundled?
18:05 thexyz modifying jthread was a bad idea
18:05 thexyz it should be renamed, at least
18:06 PilzAdam all the other optional libaries are not bundled: gettext, luajit, freetype
18:06 thexyz meh
18:06 thexyz I'm officially giving up
18:07 sfan5 well
18:08 sfan5 if we merge leveldb sqlite could be an optional library too
18:08 sfan5 so we don't need to bundle sqlite
18:08 PilzAdam sfan5, will this be good for windows?
18:08 sfan5 can someone test this? https://github.com/sfan5/minetest/commit/5f6f395d10ef15b950f2095ec5229d3734c11c5e
18:08 sfan5 dunno
18:09 sfan5 who agrees with merging leveldb in its current state? who disagrees with merging leveldb in its current state?
18:13 sfan5 thexyz: ubuntu only has a highly outdated version of leveldb in its repos, is that a reason for bundling leveldb?
18:16 thexyz I'm all for merging it
18:17 * sfan5 is too
18:17 thexyz maybe without last commit
18:17 thexyz but it's not too bad
18:17 thexyz so I'm ok with it
18:17 sapier1 joined #minetest-dev
18:18 sfan5 personally I expect of a "migration" to update the settings
18:19 sfan5 no other coredev wants to comment?
18:19 PilzAdam what about the thing with modmgr thtat sapier mentioned?
18:20 sfan5 apparently we need to tell modmgr not to delete the setting when rewriting the config file
18:23 sfan5 https://github.com/minetest/minetest/blob/master/builtin/modmgr.lua#L514
18:27 sfan5 sapier1: could you please rewrite the code to preserve all non load_<modname> keys?
18:27 sfan5 PilzAdam: fix pushed
18:29 sfan5 can we merge leveldb now?
18:30 sapier1 https://github.com/minetest/minetest/pull/912
18:31 sapier1 fix bug with textures in main menu
18:31 sapier1 yes but the problem is still you have a invalid line in your config
18:32 sapier1 key = (nothing) isn't a valid line ;-)
18:32 sfan5 the line was "backend = sqlite3load_mod_basejump = false" not "backend = "
18:33 sapier1 and your "backend = " line isn't a line with missing value?
18:33 sfan5 also according to settings.h "foobar = " is a vaild value
18:33 sapier1 to me it isn't
18:34 thexyz it is
18:34 thexyz it's a setting with empty value
18:34 sapier1 so what should a mod be set if it's set to "load_mod_something ="
18:34 sfan5 fals
18:34 sfan5 *false
18:34 sfan5 also if you have any question about the config file ask PilzAdam, he was having the problem
18:34 sapier1 that's a convention ... and not a very sane one
18:36 sfan5 what about merging leveldb now?
18:36 sapier1 and yes it could be rewritten ... I'm just reluctant to fix any bug in mainmenu just because someone adds new features the original code wasn't designed to support ... of course it would've been better if it was designed that way ... it just wasn't necessary by that time
18:36 proller__ joined #minetest-dev
18:36 PilzAdam sfan5, is there conseus on bundling leveldb?
18:37 sfan5 I guess bo
18:37 sfan5 *no
18:38 sfan5 what about making a vote whether we should bundle leveldb?
18:38 thexyz PilzAdam: what are other options?
18:40 thexyz why shouldn't we use bundled leveldb?
18:40 thexyz afaik chromium does that
18:40 PilzAdam thexyz, read the logs, all the arguments are there
18:41 thexyz what date?
18:41 PilzAdam today
18:42 sapier1 I'll add a feature to preserve lines not starting wit load_mod but everything else is up to the one adding new features
18:42 sapier1 and of course you have to test that thing I don't have time to evaluate leveldb branch
18:43 PilzAdam sapier1, wouldnt it be better to give Lua a way to create a Settings object from core?
18:43 sapier1 I don't se how this is related to worldconfig
18:44 thexyz I'm against using distro library because 1) we can't update those 2) having map backend up-to-date is very important 3) users with different versions of leveldb may (or may not) experience different errors, it's easier to handle when there's only one version
18:44 sapier1 btw I already have pull request with something very similar that was never added
18:45 sapier1 it's within the secure file access api
18:46 PilzAdam sapier1, the Settings object does exactly what the worldconfig reader should do
18:46 ShadowNinja IMO we should have something like mods = moretrees, moreores, areas... If the setting didn't exist all mods would be added to it, but any new mods wouldn't.
18:46 sapier1 no it doesn't
18:46 sapier1 unless there's a way to traverse all settings
18:46 ShadowNinja load_mod_<modname> Is ugly and takes up a lot more space in the file.
18:47 sapier1 ok guys do you want a fix or a redesign?
18:47 PilzAdam sapier1, as far as I can see world.mt has the same format as minetest.conf
18:47 sapier1 that's not the point
18:48 PilzAdam what do you mean by "traverse all settings"?
18:48 sapier1 in settings you already know the key for world config you generaly don't know the key names
18:48 ShadowNinja Creating your own settings objects in lua would be nice for this and mod confihuration files.
18:48 sfan5 hmmmm:  did this ever come to an use? https://github.com/minetest/minetest/blob/master/src/settings.h#L581
18:49 sapier1 Shadow try secure file api there's opening file in settings mode support
18:49 ShadowNinja sapier1: mods = modname, modname2... Would fix the key issue. Although settingsLto_table() would be nice.
18:49 PilzAdam sapier1, I dont get it
18:49 ShadowNinja s/L/:/
18:49 sapier1 yes it would but you'd have to convert on the fly
18:49 PilzAdam why not simply settings:get("load_mod_"..modname) ?
18:49 sapier1 you don't have the modname
18:50 PilzAdam ah
18:50 sapier1 of course you could try all available mods but this way you couldn't disable a mod that was already deleted
18:53 PilzAdam sapier1, Settings::getNames() returns all keys
18:53 ShadowNinja local worldmt = Settings(worldpath.."/world.mt") local worldmt_table = worldmt:to_table()
18:53 PilzAdam you can simply go through them and pick the mods
18:54 sapier1 ok who is going to extract the settings support from secure file api (or rewrite it)?
18:58 ShadowNinja ^ You wrote it...
18:58 sapier1 you want it
18:59 sapier1 https://github.com/sapier/minetest/tree/Add_support_for_preserving_unknown_world.mt_lines
18:59 sapier1 can someone try if this solves your issues?
19:01 sapier1 PilzAdam I don't see a big benefit of settings in this very special case
19:03 sapier1 ok no one ... I'll create a pull request if someone wants to try it later
19:04 PilzAdam I can look into that Settings thing
19:04 john_minetest left #minetest-dev
19:04 sapier1 it's not a big deal it's just a lot of compatibility code and different usecases you have to handle
19:06 sapier1 ok no compatibility code as format is same
19:06 sapier1 so only some c++ code and some modmgr code to be rewritten
19:07 thexyz PilzAdam: are we merging leveldb?
19:08 PilzAdam thexyz, there is still no decision on leveldb inclusion
19:08 PilzAdam *bundling
19:09 PilzAdam btw, I vote for no
19:09 * sfan5 has a cmake file ready w/o bundeled leveldb
19:09 PilzAdam the other devs should vote too
19:09 sapier1 is there a documentation what will be better with leveldb?
19:09 thexyz I vote for yes
19:09 sfan5 sapier1: no 4GB limit, faster, DB doesn't break so easily
19:10 sfan5 I vote for yes
19:10 sapier1 any proof for this?
19:10 * Jordach votes for yes
19:10 sfan5 4GB limit, yes; others, no
19:11 Jordach it's also takes 30% less space than a normal sqlite3 map
19:11 sfan5 Jordach: the vote is not about whether we should merge leveldb, it is about whether we should include the leveldb source code in minetest/minetest or not
19:11 Jordach oh
19:12 sfan5 merging leveldb is already accepted
19:12 thexyz kahrl: http://irc.minetest.ru/minetest-dev/2013-09-09#i_3310465
19:14 sapier1 does leveldb really not support sql?
19:14 thexyz yes, it's key-value storage
19:14 thexyz sql is overkill for minetest
19:15 thexyz because it uses sqlite as a key-value storage
19:15 thexyz and leveldb is a key-value storage
19:15 thexyz what a great coincidence
19:15 sfan5 sqlite is designed for databases with multiple fields, not for key-value things
19:15 sapier1 so we can't switch e.g. to a mysql db without reverting that changes?
19:16 thexyz what changes?
19:16 sfan5 you can just --migrate sqlite3
19:16 thexyz you can write a mysql backend (and there was one) but it's pointless
19:17 sapier1 ok so you want to maintain multiple db interfaces within minetest ?
19:17 jojoa1997 joined #minetest-dev
19:17 thexyz explain
19:18 sapier1 I'm not against leveldb I just want to know what the benefits are and what we have to give to get them
19:18 thexyz this pull request was created 9 months ago
19:18 thexyz the commit is dated 11 months ago
19:18 sapier1 and it didn't seem to be merged anytime soon (at least to me) ;-)
19:18 thexyz it still applies fine
19:19 thexyz what are those "maintain multiple db" problems you're imagining?
19:19 sfan5 the benefits again (mainly for big servers): no 4GB limit, faster, DB doesn't break so easily, less disk space usage
19:19 sapier1 nothing was changed in map structure for good reason
19:19 sfan5 define "map structure"
19:19 sfan5 nothing was changed within MapBlock serialization
19:19 sfan5 it completely downwards-compatible
19:19 thexyz sapier1: okay, what could change?
19:19 sfan5 *it's
19:20 sapier1 I don't believe genereal "faster" ... first benchmark I had a look tells general benefits for leveldb but there are some scenarios where sqlite is faster too
19:20 thexyz sapier1: I don't think sql will ever be faster for what we're using it
19:20 sapier1 I don't know
19:20 thexyz again
19:20 thexyz you're comparing different things
19:20 sapier1 sqlite3 is faster for random reads
19:21 thexyz okay
19:21 thexyz it is, I'll believe you
19:21 thexyz now what?
19:21 thexyz this doesn't help this 4gb issue
19:21 sapier1 at least if that benchmark is correct ... as it's official leveldb benchmark I assume they don't make them worse than they are http://leveldb.googlecode.com/svn/trunk/doc/benchmark.html
19:22 sapier1 most time they are way better than sqlite3
19:22 sapier1 yes it doesn't help for 4gb issue
19:22 thexyz now, what are your reasons to not merge it?
19:23 sapier1 so we have loss of sql compatibility and (possible) minor performance degration against 4gb fix ... (for now)
19:23 sapier1 that could be worth the swicht
19:23 thexyz or, more likely, performance increase
19:23 sfan5 <sapier1> so we have loss of sql compatibility
19:23 sfan5 no?
19:24 thexyz okay, so you're fine with it
19:24 sapier1 maybe but I'd expect minetest to do more random operations than sequential ones ... but I don't have a proof for that
19:24 sapier1 btw leveldb suffers from ext4
19:25 thexyz not much
19:25 thexyz or whatever
19:25 sapier1 by now I'm pair neither leveldb nor sqlite3 fully convince me
19:25 thexyz are you ok with merging it?
19:26 thexyz are you against it?
19:26 thexyz no, wait, merging is decided already
19:26 sapier1 If I had to decide I wouldn't merge it due to lack of obvious benefits
19:26 thexyz > 4gb
19:27 sapier1 is equalized by proprietary api and unknown performance impac
19:27 thexyz obvious benefit, delivered
19:27 sapier1 at least to me
19:27 thexyz okay
19:27 sfan5 thexyz: what about asking celr*n55 about merging leveldb?
19:27 thexyz I've spend so much time on this shit
19:27 thexyz it's not fun anymore
19:27 thexyz so please decide it without me
19:28 sfan5 :-/
19:28 sapier1 sfan5 I'm not a core developer so for formal merge decision you can just ignore my opinion
19:28 sfan5 I'm also annoyed and want to get this merged
19:28 pitriss i don't want to mess into discussion too much but sql backend could be fine too, just because lot of ppl have mysql/pgsql already installed..
19:29 sfan5 it is not like the leveldb pull removed the sql way of doing things
19:29 sapier1 thexyz I can imagine how much work this was as switching db api is always a big issue
19:29 sfan5 sql will probably be the default backend for windows users until someone gets proper win32 support for leveldb done
19:29 sapier1 sfan5 we don't have capacity to maintain both mid term one of those will have to die
19:30 sapier1 or die slowly because noone is interested in fixing bugs
19:31 sfan5 leveldb won't die because it doesn't have the 4gb limit which is very helpful for big servers and SQLite3 won't die because it will be the default backend for windows users
19:31 sapier1 imho thats worst option as this will bind capacitys to fix issues
19:33 sapier1 do we have any way to record a typical minetest db operation profile? maybe performance is really that much better for us than sqlite3?
19:35 sfan5 add some printf statements in map.cpp (master) or database-sqlite3.cpp (sfan5/minetest@leveldb)
19:35 proller__ much easier skip saving not changed blocks
19:36 proller__ and reaching 4g will be impossible
19:37 sfan5 reaching 4GB is NOT impossible
19:37 sapier1 at cost of cpu power to recreate it any time
19:37 proller__ for 10+ years ?
19:37 sfan5 on servers like redcrab's it's definetly not impossible to reach 4GB
19:38 sfan5 even if unchanged blocks are not saved
19:38 proller__ sapier1, cpu now fast
19:39 sapier1 proller you know how slow map generation is so not sure if this is really true for minetest
19:39 proller__ i now have 1438M
19:39 proller__ sapier1, not much slower than loading
19:40 sapier1 I don't know I have to believe that
19:40 proller__ sapier1, now you can fall at speed 100nodes per second with map generation without stuck *
19:40 proller__ * - with my ppull
19:40 sapier1 and I'm with sfan5 4gb limit is that near we can't ignore it
19:41 sapier1 proller I guess you haven't added mods by now? ;-)
19:41 proller__ without mods
19:42 sapier1 you should try if it's worth to optimize further as mods using on_generated may cause a lot of additional load
19:43 thexyz sapier1: do you have any idea? https://github.com/minetest/minetest/issues/910
19:45 sapier1 I didn't even know chinese is supported ;-)
19:46 sapier1 and I have no idea why this doesn't work
19:46 thexyz it's 90% translated; having i18n is very important
19:46 thexyz we need a "blocker" tag, opinions?
19:46 thexyz err, label
19:46 sapier1 yes
19:47 sapier1 I'm absolutly positive
19:47 sapier1 still I don't know why this happens there are others using utf8 too with no issues
19:47 thexyz okay, done
19:47 thexyz only happens on Windows, reproduces in Wine
19:48 sapier1 maybe a general gettext issue?
19:48 thexyz worked fine before
19:48 thexyz I think formspec menu is the culprit
19:48 sapier1 gettext wasn't used in formspec menu before
19:48 thexyz but I didn't test it since I have no mingw setup
19:49 thexyz I'm talking about pre-formspec-menu era
19:49 thexyz okay, let's say it's related to this
19:49 sapier1 yes so there has to be a difference between the new added formspec gettext support and the way it was used before
19:50 sapier1 didn't someone switch to translate a text in core send it to lua and send then back to core?
19:51 thexyz https://github.com/minetest/minetest/blob/master/src/gettext.h#L43
19:52 thexyz oh, no, it should be fine
19:52 thexyz I have no idea how does gettext<->lua work
19:56 iqualfragile_ joined #minetest-dev
20:02 thexyz ideas?
20:02 sapier1 yes but I can't test
20:03 sapier1 my first guess is to try what happens if text isn't transfered from core to lua and back
20:03 sapier1 btw does localization work in linux?
20:04 thexyz yes
20:04 sapier1 so a windows only issue?
20:04 sapier1 what's the internal charset used for windows builds?
20:04 thexyz http://i.imgur.com/Ox1tgmn.png
20:04 thexyz I have no idea
20:05 thexyz but it was ok before
20:05 sapier1 half translated?
20:05 thexyz half translated is not a bug, it's how it is
20:05 sapier1 ok thats linux
20:06 sapier1 do you have a windows testenv?
20:06 thexyz I can't compile for windows, ask sfan5
20:07 sfan5 are you able to install mingw toolchain?
20:07 sapier1 sfan5 could you try if 910 is in https://github.com/sapier/minetest/commits/add_lua_mainmenu_gettext too? this way we could rule out that string conversion from core to lua and back are an issue
20:08 sapier1 able yes but it won't be a quick task so if you have everything ready we could have a result in half an our if I need to to it it's most likely by friday
20:08 sfan5 depending on the os that just a matter of "<packagemanager> install mingw32"
20:09 thexyz we need to make something like minetest translation marathon; like it was with the wiki
20:09 sfan5 the rest is right here: https://dl.dropboxusercontent.com/u/30267315/Minetest/minetest-buildbot.zip
20:09 sapier1 it's not setting up a full new toolchain including all libs etc is usualla a daytime task
20:09 sapier1 I don't use that script
20:09 sfan5 why not?
20:10 sfan5 oh...
20:10 sfan5 no
20:10 sapier1 I already told that when you added additional binary libraries to that thing last time ;-)
20:11 sapier1 but you don't need to compile it it's just been a question
20:11 sfan5 all you need to do to build for windows install mingw and fire up the script in the zipfile, nothing more
20:11 sfan5 I can build, but I will go to sleep soon
20:12 sapier1 no problem I guess that issue will be here tomorrow too
20:12 sapier1 I'll try myself once I have time but I can't promise when this will be ... and no I wont run that script
20:13 thexyz I wonder what does this script contain
20:13 sapier1 some download and install mechanisms for binary code from various locations
20:14 sapier1 I haven't evaluated this in detail and I wont do that thats why I don't use it
20:16 sfan5 umm
20:17 sfan5 that script does not run any downloaded binary
20:17 thexyz paranoia ;)
20:17 sfan5 it only downloads  libraries needed and builds minetest from the official sources
20:17 sapier1 I'm not half as paranoid prooven to be necessary
20:17 sfan5 it also doesn't install anything
20:17 celeron55 one is allowed to wear a tinfoil hat, but i think it is utterly impolite to request others to do work for oneself because of that hat
20:18 sfan5 celeron55: since you are here now, would you include the libleveldb source code in the repository?
20:19 celeron55 btw, does sapier1 know this problem? http://cm.bell-labs.com/who/ken/trust.html
20:19 sapier1 celeron55 Die Aktion lässt sich nicht ausführen
20:19 sapier1 Unbekannter Rechner
20:19 celeron55 the problem of bootstrapping compilers with precompiled version of the same compiler
20:19 celeron55 and how they can contain injected code buried deep within
20:19 sapier1 --> can't open that link ;-)
20:20 sapier1 still it's even more impolite to push any bug related to scriptapi mainmenu whatever to me ;-P
20:20 thexyz didn't you code it?
20:21 harrison joined #minetest-dev
20:21 sapier1 chances are high that this bug is in my code but as i18n wasn't added the way I suggested there's a way more than zero chance it's not my fault too
20:23 sapier1 but if you want to start the "you did it wrong fix it"-game I'll investigate this one as soon as possible and drop any fix as soon as I prooven it's not my fault
20:23 sapier1 or fix it if it was my fault of course
20:25 thexyz no one told you have to fix that
20:26 sfan5 apparently nobody wants to say their opinion about the conflicts that is holding back leveldb from merge
20:26 sfan5 -s
20:26 thexyz I'm for merging it
20:26 sapier1 "(22:20:54) celeron55: one is allowed to wear a tinfoil hat, but i think it is utterly impolite to request others to do work >>>for oneself <<< because of that hat" correct me if this isn't meant as fixing this issue is my work
20:27 thexyz just forget it
20:27 celeron55 sfan5: my take on leveldb is that get the abstraction layer in ASAP
20:28 celeron55 stuff other than that is much less important
20:28 sfan5 yeah, but there has been a recent argument whether leveldb source code should be included in the main repository
20:28 thexyz how could other stuff be less important
20:28 thexyz there's no point in having good abstraction layer without having actual backends
20:29 sfan5 (we somehow decided that we want more than 2 coredevs agreeing...)
20:29 sfan5 which is currently not the case
20:29 celeron55 because including leveldb is easy after that; spreading decisions over time makes stuff easier for people to handle
20:29 thexyz because PilzAdam disagreed which makes 1+1-1=1
20:29 sapier1 lol you should start politics celeron ;-)
20:30 thexyz right, right
20:30 thexyz it will only take another year
20:30 sapier1 but at least at that point you're right
20:31 celeron55 i really don't want to dig up what actual issues leveldb has
20:31 celeron55 if it has none, then just throw it in
20:31 celeron55 but i think i've heard something else
20:32 PilzAdam sapier1, is from_table() needed for settings?
20:32 PilzAdam I think its not that useful
20:32 sapier1 not for settings but it's required for worldconfig
20:32 sapier1 if you wanna use it there
20:32 PilzAdam I already have to_table()
20:33 sapier1 so why do you ask? ;-) you need a way to get all keys if you wanna use settings for worldconfig ... what way isn't that important
20:33 PilzAdam hmm.. I either need to add is_yes() or add to_bool_table()
20:33 celeron55 also, if leveldb is not default on some platform, then it must be non-default on all platforms so that regular players can interchange worlds; owners of huge servers know what they're doing and can use leveldb as they see needed
20:33 sapier1 as modname is mixed up to key there
20:34 PilzAdam sapier1, I asked about from_table(), its different from to_table()
20:34 sfan5 sqlite3 is tt default for creating worlds
20:34 sfan5 the default backend*
20:34 sapier1 oops
20:35 sapier1 sorry no we don't need a way to make a setting element from a table ... I guess this wouldn't even be possible for all tables
20:35 celeron55 sfan5: so does leveldb work at the moment as a default-to-disabled build-time option which uses a system-installed leveldb?
20:35 PilzAdam currently in to_table() all values are strings; should I add an is_yes()?
20:36 sapier1 if you do so you should cleanup mainmenu code wich uses it's own code at some locations (as far as I know)
20:37 PilzAdam so add minetest.is_yes() ?
20:38 sapier1 why not settings:get_bool()
20:38 PilzAdam its not useful for to_table()
20:38 celeron55 sfan5: if so, then throw it in
20:38 sapier1 oh ok you're right
20:39 sapier1 I guess it'd be enough to have this as builtin
20:40 PilzAdam wouldnt it be better to use is_yes() from string.h, to be sure to have exactly same results?
20:41 PilzAdam meh, Ill just copy it to builtin
20:42 sfan5 celeron55: it currently uses a bundled leveldb, this is what we were aruguing about; you are against a bundled leveldb?
20:42 sapier1 string.h the system header or do we have a name collision within minetest?
20:42 PilzAdam util/string.h
20:43 sapier1 funny of course we shouldn't add a inconsistency chance so if we already have a is_yes we should use it
20:44 celeron55 sfan5: we really only bundle for windows, and leveldb is available as distro package on linux
20:45 celeron55 which is yes, i am against bundling it unless it works directly on windows
20:45 sfan5 I guess we'll use a sytem-wide leveldb then
20:46 PilzAdam sapier1, indeed minetest.is_yes("") fails the assert() from test.cpp (I ported it to Lua))
20:46 PilzAdam so Ill use the one from the core
20:46 celeron55 we need to make sure server maintainers get to know about leveldb somehow; probably mention it on a wiki page or something
20:47 sfan5 |#| Merge of LevelDB pull incoming
20:49 sapier1 left #minetest-dev
20:50 proller joined #minetest-dev
20:54 PilzAdam has someone added src/leveldb/CMakeFiles/ to .gitignore?
20:55 sfan5 not necessary
20:55 sfan5 leveldb sourcode was not included
20:55 PilzAdam ah, (havent read the logs yet)
20:55 * sfan5 will go to sleep now
20:56 PilzAdam I have finished the Settings interface for Lua: https://github.com/PilzAdam/minetest/commits/LuaSettings
20:57 Exio4 is the commit flood that is on upstream right now ok?
20:57 PilzAdam ... and I forgot lua-api.txt
21:05 sfan5 maybe someone should write a news topic about LevelDB? </I'm now really going to sleep>
21:05 PilzAdam https://github.com/PilzAdam/minetest/commits/LuaSettings <- updated
21:06 ShadowNinja Compiler warnings after updating, second seems related to the leveldb pull. http://pastebin.ubuntu.com/6085179/
21:10 ShadowNinja PilzAdam: l_settings.ccp line 179: No closing brace
21:11 PilzAdam ShadowNinja, good catch
21:12 PilzAdam fixed
21:12 ShadowNinja The rest looks good, although the result of get_names can be determined by to_table.
21:12 PilzAdam yea, I thought about that too
21:14 Exio4 how do i switch to leveldb-by-default?
21:14 Exio4 i don't see any option for that
21:15 ShadowNinja default_db = {sqlite3,leveldb,dummy) in minetest.conf would be good...
21:36 PilzAdam thexyz, http://translate.minetest.ru/projects/minetest/core/fr/translate/?sid=ddfac3be-1997-11e3-b981-5404a6b201f0&amp;offset=220
21:38 Exio4 just got http://dpaste.com/1372626/
21:38 PilzAdam Exio4, debug build and gdb
21:39 Exio4 will
21:42 Miner_48er joined #minetest-dev
21:49 iqualfragile_ i want to test leveldb, instructions?
21:51 Exio4 i used default_db = leveldb and a new world
21:55 PilzAdam Exio4, there is no default_db option in minetest.conf
21:55 Exio4 there isn't?
21:56 Exio4 so my overclock works
21:59 iqualfragile_ PilzAdam: then: what to do/where are the instructions?
22:03 PilzAdam you run bin/minetest --server --world worlds/whatever/ --migrate leveldb
22:03 PilzAdam then you have map.db and map.sqlite in the world directory, and can choose the backend via "backend" in world.mt
22:04 iqualfragile_ but they to get out of sync
22:04 PilzAdam yes
22:05 iqualfragile_ so is there a --migrate sqlite ?
22:05 PilzAdam yes
22:07 iqualfragile_ great
22:20 ShadowNinja --migrate sqlite3 actually, but you normally delete the old DB.

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