Time |
Nick |
Message |
01:48 |
|
khonkhortisan joined #minetest-dev |
02:27 |
|
Zeno` joined #minetest-dev |
02:44 |
|
chchjesus__ joined #minetest-dev |
03:03 |
|
mrtux joined #minetest-dev |
04:04 |
|
chchjesus__ joined #minetest-dev |
04:12 |
|
mrtux joined #minetest-dev |
04:35 |
Zeno` |
Any comments on #1829 ? |
04:35 |
ShadowBot |
https://github.com/minetest/minetest/issues/1829 -- Fix raillike render on Android, and minor improvement to readability. by KodexKy |
04:36 |
Zeno` |
The bug seems to be that on Android char is unsigned |
04:36 |
Zeno` |
it's the only thing I can see different in the PR anyway, apart from the cosmetic changes |
04:46 |
Zeno` |
Any opposition to me merging it? |
04:51 |
|
shmancelot joined #minetest-dev |
05:06 |
|
Miner_48er joined #minetest-dev |
05:06 |
|
sol_invictus joined #minetest-dev |
05:34 |
ShadowNinja |
Zeno`: Seems O.K. Maybe int -> short though. |
05:35 |
Zeno` |
short... ok, I guess (didn't realise memory was that limited, but I see your point) |
05:42 |
Zeno` |
Ok I've changed to short and will merge |
05:43 |
ShadowNinja |
Zeno`: It could be a long long for all that the memory matters, but that just isn't the right way to do it, it's just wasting space. |
05:44 |
Zeno` |
yes, that's fair enough |
05:45 |
ShadowNinja |
Zeno`: Also: 1. How do you want your line displayed in the credits menu (email? real name?) 2. Please include commit hashes when closing merged PRs. |
05:45 |
Zeno` |
I didn't know about #2 (will do so from now on, thanks) |
05:45 |
ShadowNinja |
(full ones, GitHub will automatically apreviate them) |
05:45 |
Zeno` |
Umm, I dunno... Craig Robbins (Zeno) is fine I guess |
05:47 |
ShadowNinja |
Zeno`: Oh, that reminds me. You're entitled to zenominetest.net (or whatever usernane you prefer) if you want it. |
05:48 |
Zeno` |
ShadowNinja, probably not at the moment thanks (I have enough trouble keeping up with my other 14 email accounts :)) |
05:49 |
Zeno` |
Is that a better way to close the PR? https://github.com/minetest/minetest/pull/1829 |
05:49 |
ShadowNinja |
Zeno`: Yep, great. :-) |
05:49 |
Zeno` |
k :) |
06:02 |
Zeno` |
Maybe signed char would have been better than short |
06:02 |
Zeno` |
too late now |
06:04 |
Zeno` |
Is #1673 supposed to be closed? |
06:04 |
ShadowBot |
https://github.com/minetest/minetest/issues/1673 -- Add in-game Change Key menu. by mushiden |
06:18 |
ShadowNinja |
Zeno`: Er, yes... |
06:21 |
ShadowNinja |
Done. |
06:37 |
|
Hunterz joined #minetest-dev |
06:49 |
|
Wheatley-555_ joined #minetest-dev |
07:03 |
|
Anchakor_ joined #minetest-dev |
07:07 |
|
rickmcfarley joined #minetest-dev |
07:47 |
|
jin_xi joined #minetest-dev |
07:53 |
|
darkrose joined #minetest-dev |
08:11 |
|
kilbith joined #minetest-dev |
08:35 |
|
selat joined #minetest-dev |
09:04 |
|
Amaz joined #minetest-dev |
09:59 |
|
chchjesus__ joined #minetest-dev |
10:07 |
|
FR^2 joined #minetest-dev |
10:17 |
|
ImQ009 joined #minetest-dev |
11:00 |
Fritigern |
Oh my goodness..... I just pulled and built from git, and.... well.... Errors up the bum when i start minetestserver.... http://pastebin.com/ju4wAzHN |
11:02 |
Fritigern |
All of those errors, except for the one on line 1, are new |
11:02 |
|
kaeza joined #minetest-dev |
11:03 |
kaeza |
Fritigern, it's a GoodThingâ„¢ |
11:03 |
Fritigern |
The build log is clean, aside from the costomary "tmpnam" error |
11:03 |
Fritigern |
*cutomary |
11:03 |
Fritigern |
whatever, i can;t type |
11:04 |
Zeno` |
what the... |
11:04 |
kaeza |
also mornings |
11:04 |
Fritigern |
kaeza steward: Why is it a good thing, if i may be so bold to ask |
11:05 |
Zeno` |
It's probably https://github.com/minetest/minetest/commit/a6ba042cf792d29cda4f7f7924a68a017d9b0335 |
11:05 |
Zeno` |
do you know how to bisect? |
11:06 |
kaeza |
Fritigern, it means mods are polluting the global namespace for no reason |
11:07 |
Zeno` |
They're just warnings though (as far as I can see) |
11:07 |
kaeza |
which may lead to hideous bugs |
11:08 |
Fritigern |
Soooo... Now i can;t even log on to that server |
11:09 |
Fritigern |
Even worse, my machine is going nuts, something (dunno what) iseating all of my RAM and i can not even open a terminal to check top |
11:09 |
Fritigern |
I think it may be the MT client, but i have no actual proof |
11:09 |
Fritigern |
Valgrind, here i come! |
11:10 |
Fritigern |
Well, as soon as i can move again |
11:11 |
Fritigern |
Okay, as soon as i managed to open a terminal and kill minetest, my PC started to behave again. Scary! |
11:13 |
Fritigern |
(btw, i know what valgrind is supposed to do, but i have never used it....) |
11:14 |
kaeza |
ShadowBot, that is not possible without some heavy hackery making things less clear |
11:14 |
ShadowBot |
kaeza: O.K. |
11:14 |
kaeza |
... |
11:14 |
kaeza |
ShadowNinja, ^ |
11:15 |
Fritigern |
Wait...... Perhaps the memory issue is caused by the texture pack HDX-512 *slaps forehead* |
11:15 |
|
chchjesus__ joined #minetest-dev |
11:16 |
kaeza |
or probably can, at the expense of adding Lua function call overhead for every non-existant field lookup |
11:17 |
kaeza |
that's because meta.__index is not recursive when using a table |
11:19 |
kaeza |
i.e. if you `setmetatable(t, {__index=mt})`, then `t[k]` is the same as `rawget(mt, k)`, NOT `mt[k]` |
11:19 |
kaeza |
(for fields not existing in `t`) |
11:20 |
|
DFeniks joined #minetest-dev |
11:20 |
kaeza |
hope that makes sense... |
11:20 |
Fritigern |
Oh my goodness. Valgrind is slows down MT so flipping much! |
11:20 |
Fritigern |
*is slowing |
11:21 |
Zeno` |
I'm not sure valgrind will provide much that is useful in this case anyway heh |
11:21 |
Zeno` |
but let it finish |
11:22 |
Fritigern |
If there is a memory leak, then Valgrind will prolly find it, which is why i started it. for a while i had a feeling that MT is not 100% free of leakage..... |
11:22 |
Zeno` |
nah it won't find it if it's cleaned up properly on exit |
11:22 |
|
ImQ009 joined #minetest-dev |
11:22 |
Fritigern |
Then again, if there is a leak, then there is no guarantee that my setup will meet the conditions for this leak |
11:23 |
Zeno` |
which is the main reason I can't track down what I think is a leak in the client |
11:23 |
Zeno` |
not using valgrind anyway* |
11:23 |
Fritigern |
Wouldn;t it be a hoot if i just stumble upon it? :-)) |
11:23 |
Zeno` |
it would |
11:24 |
Fritigern |
It now gives me the blach blah about default_fence.png not found, and using a dummy image. This is normal, and my client does that all the time |
11:25 |
Fritigern |
Well, "normal" is a relative term of course |
11:25 |
|
zat joined #minetest-dev |
11:31 |
Fritigern |
So, in Lua terms. Is a global a variable that is accessible by other scripts as well? Or a variable that is defined for the entire script, as opposed a variable that is defined per function (for lack of a better word)? |
11:33 |
Fritigern |
BTW, after logging in, i get a ton of spam in the console about "03:32:58: WARNING: Undeclared global variable "spawn_plants" accessed at ...orlds/Pacata/worldmods/plantlife/plants_lib/init.lua:502" |
11:34 |
Fritigern |
This started when i logged into my server, and stopped after i logged out |
11:35 |
Fritigern |
The valgrind log, for whoever knows how to read it ;-) http://pastebin.com/0h3tm6g5 |
11:36 |
|
ImQ009 joined #minetest-dev |
11:40 |
kaeza |
Fritigern, in Lua, every variable is global unless you *explicitly* mark it local, contrary to e.g. Python where defining a variable inside a function keeps it local unless marked global (or at least, kept in the module) |
11:41 |
kaeza |
globals in Lua leak to everything that is using the same interpreter, which can inadvertently overwrite other important stuff (this already happened around here) |
11:42 |
Fritigern |
So, if i understand correctly, the errors, or most of them, on the startup of my server could be prevented by simply declaring the global? |
11:43 |
kaeza |
some variables may be indeed meant as global, while others local |
11:44 |
kaeza |
"declaring" as global is as easy as doing `foo = bar` at the top level of the script (i.e. what in Python would be called "module level") |
11:44 |
Fritigern |
Of course, it takes common sense and proper judgement there. But assuming that they were supposed to be globals, would "global varname" near the top of the script fix it? |
11:44 |
Fritigern |
Ah, i see |
11:45 |
Fritigern |
So in the case of the spawn_plants spam that i see in my console, the fix could be to set "spawn_plants = 1" near the top of the script? |
11:46 |
Fritigern |
(of course, i would have to go and see what type of var the script expects, but that's a DUH!" |
11:46 |
kaeza |
indeed |
11:47 |
Fritigern |
Okay, off i go. On to a new global adventure! :-)) |
11:49 |
Zeno` |
Fritigern, that valgrind output... what does it relate to? A single player game (where a server is launched) or a connection to an existing server? |
11:49 |
Fritigern |
And this is how i discovered that spawn_plants is only used in that one line that is being complained about |
11:49 |
Fritigern |
Zeno`: That was my client connecting to my server |
11:50 |
Zeno` |
so just a normal client connecting to a remote host run? |
11:50 |
Fritigern |
Well, the server and the client both ran on the same PC, but they were two separate instances |
11:50 |
Zeno` |
yep, cool. thanks |
11:51 |
Fritigern |
Anything i can do to help make this game better :-) |
11:51 |
Zeno` |
Anyway it all seems fine to me |
11:52 |
Zeno` |
well as fine as it can get ignoring irrlicht or opengl issues |
11:53 |
* Fritigern |
has OpenGL 4.4, i will not be responsible for any OpenGL errors. Nyaaa! |
11:53 |
Zeno` |
:) |
11:53 |
Fritigern |
:-) |
11:53 |
|
proller joined #minetest-dev |
11:58 |
Fritigern |
I may have messed up plants_lib, but i'll find out :-) |
12:02 |
Fritigern |
OMG, no console spam. Could it be that i have fixed an actual bug? Line 502 uses the variable spawn_plants, but when i searched the file for spawn_plant, i keep seeing "biome.spawn_plants" so i changed the only two instances of spawn_plants to that. So far so good.... |
12:06 |
Zeno` |
Where is sapier? |
12:06 |
Fritigern |
Well, plants_lib no longer complains. Which doesn;t mean that i fixed it, it merely means that i changed something so that it no longer complains. For all i know, it could be quietly destroying my world. |
12:07 |
Zeno` |
Kind of need him to review #1826 |
12:07 |
ShadowBot |
https://github.com/minetest/minetest/issues/1826 -- Fix for various Android build errors. Enable landscape rotation. by KodexKy |
12:07 |
|
GrimKriegor joined #minetest-dev |
12:07 |
Zeno` |
unless someone else is good with Android |
12:08 |
Zeno` |
I'm going to get an Android but I can't test this yet although it looks good and it needs to be merged before 0.4.11 is released |
12:10 |
Zeno` |
The only thing I am unsure about is: android:screenOrientation="sensorLandscape" |
12:10 |
Zeno` |
the rest is fine |
12:11 |
Fritigern |
VanessaE: In case you wouldn;t, please read the backlog and what i did to plants_lib. I don;t know if i did something right, or wrong. |
12:27 |
|
NakedFury joined #minetest-dev |
12:29 |
|
proller joined #minetest-dev |
12:34 |
Wayward_One |
Zeno`, need someone to test it on an Android? |
12:35 |
Zeno` |
Wayward_One, yes and also confirm that android:screenOrientation="sensorLandscape" is the correct setting |
12:35 |
Zeno` |
from what I have googled it seems right |
12:35 |
Zeno` |
Wayward_One, you can compile for Android? |
12:36 |
Wayward_One |
oh, no i can't :/ |
12:36 |
Wayward_One |
i can try though |
12:36 |
Zeno` |
you're braver than me |
12:37 |
Zeno` |
I've just ordered a Samsung Galaxy thing so I can test |
12:37 |
Zeno` |
but I guess it will take a few days to arrive |
12:38 |
Zeno` |
there goes next weeks food :D |
12:38 |
Wayward_One |
lol |
12:40 |
|
SudoAptGetPlay joined #minetest-dev |
13:07 |
|
PenguinDad joined #minetest-dev |
13:08 |
|
SudoAptGetPlay left #minetest-dev |
13:36 |
|
ImQ009 joined #minetest-dev |
13:42 |
|
sol_invictus joined #minetest-dev |
14:03 |
|
ImQ009 joined #minetest-dev |
14:13 |
|
shadowzone joined #minetest-dev |
14:16 |
|
NakedFury joined #minetest-dev |
14:30 |
|
SudoAptGetPlay joined #minetest-dev |
14:31 |
|
SudoAptGetPlay left #minetest-dev |
14:45 |
|
proller joined #minetest-dev |
15:05 |
|
shadowzone joined #minetest-dev |
15:12 |
|
twoelk joined #minetest-dev |
15:16 |
|
luizrpgluiz joined #minetest-dev |
15:17 |
luizrpgluiz |
hi |
15:19 |
luizrpgluiz |
would be possible to put in an implementation minetest as skins in multiplayer as it has in minecraft? eg in multiplayer can put your skin and look the other player custom skin instead of the default skin in the game |
15:20 |
|
shadowzone joined #minetest-dev |
15:24 |
|
shadowzone joined #minetest-dev |
15:25 |
PenguinDad |
There are still some variable problems http://pastie.org/9732523 |
15:25 |
|
proller joined #minetest-dev |
15:32 |
|
luizrpgluiz left #minetest-dev |
15:43 |
|
hmmmm joined #minetest-dev |
15:43 |
|
proller joined #minetest-dev |
15:43 |
|
Amaz joined #minetest-dev |
15:49 |
|
shadowzone joined #minetest-dev |
15:50 |
|
proller joined #minetest-dev |
16:01 |
|
luizrpgluiz joined #minetest-dev |
16:02 |
luizrpgluiz |
could some day create a similar system logins to put their own skin in minetest as it has in minecraft? |
16:07 |
|
shadowzone joined #minetest-dev |
16:17 |
ShadowNinja |
PenguinDad: "Assignment to undeclared global inside a function" is a very serious warning, in fact it used to be an error, because it's almost never intentional. |
16:18 |
ShadowNinja |
I should probably add minetest.global_exists() to fix the majority of those warnings (accessing undeclared global) |
16:19 |
PenguinDad |
ShadowNinja: I know that and that's why I did this https://github.com/minetest/minetest_game/pull/343 |
16:19 |
ShadowNinja |
I'll move the serious ones to errorstream too. |
16:20 |
ShadowNinja |
PenguinDad: Looks good to me, but I won't touch it lest BlockMen gets annoyed at me again. |
16:21 |
PenguinDad |
sfan5: do you agree with that pull? |
16:24 |
ShadowNinja |
Comments on this? http://sprunge.us/cIIL?diff |
16:25 |
ShadowNinja |
It makes the most serious class of errors log to errorstream and adds minetest.global_exists(). |
16:26 |
ShadowNinja |
(checking for a global is the most cause of warnings) |
16:28 |
|
luizrpgluiz left #minetest-dev |
16:38 |
ShadowNinja |
sfan5, hmmmm: ^ Seems O.K. (+ doc) ? |
16:40 |
Sokomine |
ShadowNinja: those times where i access global variables in order to check if something exists give me some trouble regarding the error messages. so your minetest.global_exists() would be very helpful. other than that, i'm very glad that there are warnings now |
16:42 |
sfan5 |
lolwat |
16:42 |
sfan5 |
do you want to replace builtin lua features by a special function just because finding mistakes in mods? |
16:47 |
ShadowNinja |
sfan5: Lua's builtin behavior is messed up, it lets you do a lot of things that are often bugs. |
16:48 |
sfan5 |
can we at least add a setting for this? |
16:48 |
ShadowNinja |
global_exists just redirects to rawget for now. |
16:48 |
ShadowNinja |
sfan5: For what? |
16:48 |
sfan5 |
for the warning |
16:48 |
sfan5 |
random users don't care about that |
16:48 |
sfan5 |
and will get confused |
16:49 |
n4x |
because warnings that can show where bugs happen are totally evil |
16:49 |
ShadowNinja |
sfan5: Hmmm, the issue is that mod developers have to know about the setting. |
16:50 |
sfan5 |
add it to docs |
16:50 |
ShadowNinja |
sfan5: Oh, yes, because everyone reads the entire 478 line example conf. |
16:50 |
|
rubenwardy joined #minetest-dev |
16:51 |
ShadowNinja |
And the 2814 line lua_api. |
16:51 |
sfan5 |
isn't there a page about common bugs in mods or something in the dev wiki |
16:51 |
|
shadowzone joined #minetest-dev |
16:52 |
ShadowNinja |
There's one on the user wiki for platform-specific Minetest core bugs. |
16:52 |
Sokomine |
some advertisement for that new debugging option in the forum can't hurt either :-) |
16:52 |
ShadowNinja |
(Troubleshooting) |
16:53 |
ShadowNinja |
Sokomine: Yes, but it has to be obvious to everyone that starts to make mods after the announcement and doesn't read the whole news section. |
16:53 |
Sokomine |
ShadowNinja: that's right. only people who are specificly looking for something (or by chance read the channel at the time the issue is discussed) will ever get to know about new features. articles in the forum could help a lot there. most mod developers read the forum, and it doesn't scroll away. a small topic "new features/changes" could help |
16:54 |
ShadowNinja |
We should have an official "Guide to making a mod" that includes that. |
16:54 |
ShadowNinja |
Sokomine: These warnings really shouldn't exist as soon as moders fix their mods though. |
16:55 |
rubenwardy |
I started making a tutorial guide for Minetest modding. In the style of a book |
16:55 |
ShadowNinja |
A setting's fine if it's on be default though. |
16:57 |
rubenwardy |
https://www.dropbox.com/s/9j5l6wvbn7o46rf/MinetestGuide.odt?dl=1 |
16:58 |
ShadowNinja |
I've found a real bug in WorldEdit with this. It's accessing check_set to pass it to a function, which doesn't exist so it's assed as nil. |
17:00 |
ShadowNinja |
It also greates a "safe_region" global function, another bug. |
17:01 |
ShadowNinja |
This should be run with WARN_INIT to catch some of the more hidden bugs. |
17:04 |
Sokomine |
hm. mt aims at making modding easy - even for people who have no clue at all about programming. at least those people usually don't create something complex. the most helpful way might be to have a short, comprehensible explanation of the existance of the option, of what it means, what local variables are regarding lua, and to have that explantion be the first hit on google when people search for the error message |
17:04 |
Sokomine |
put the discussion to the forum by all means |
17:07 |
ShadowNinja |
Ugh, the Android build uses hardcoded paths for the menu and tmp directory. |
17:07 |
|
Hunterz joined #minetest-dev |
17:10 |
|
Anchakor_ joined #minetest-dev |
17:32 |
|
GrimKriegor joined #minetest-dev |
17:43 |
|
Krock joined #minetest-dev |
17:58 |
celeron55 |
format the warning similarly as some other project that uses a similar mechanism in lua |
17:58 |
celeron55 |
that'll help random people who stumble upon it |
17:58 |
celeron55 |
(i don't know who else uses it, though) |
17:59 |
|
proller joined #minetest-dev |
18:02 |
|
selat joined #minetest-dev |
18:04 |
celeron55 |
also: in my opinion lua's standard behavior with globals is exactly correct; it makes every scope behave in a consistent way; the problem is that using a wrapper like this for globals is not commonly recommended and used where appropriate |
18:05 |
celeron55 |
or, umm... well |
18:05 |
celeron55 |
maybe it's still a bad idea for a default behavior 8) |
18:32 |
|
Calinou joined #minetest-dev |
18:33 |
|
proller joined #minetest-dev |
18:58 |
kaeza |
ShadowNinja, https://github.com/kaeza/minetest/commit/d9eacd2310de61e6504847444384bef59697e09d |
18:58 |
Krock |
classic. |
19:00 |
kaeza |
oops, forgot documenting `itemdef_default` |
19:01 |
kaeza |
eh, the others aren't documented either... |
19:03 |
kaeza |
if there are no more complaints, I think builtin/game/ is done |
19:04 |
ShadowNinja |
kaeza: You said it wasn't recursive though, you'll have to use an __index function to make it recursive. |
19:04 |
kaeza |
that's what I did in the last commit |
19:04 |
ShadowNinja |
kaeza: You could just copy to the tables though, since it's not all that huge. |
19:05 |
ShadowNinja |
That would be simpler. |
19:05 |
kaeza |
so *def_default "inherits" from itemdef_default |
19:05 |
ShadowNinja |
But it wouldn't work after init.... |
19:05 |
kaeza |
eh? |
19:05 |
ShadowNinja |
kaeza: Nevermind. |
19:05 |
kaeza |
alright |
19:06 |
ShadowNinja |
kaeza: I noticed that there was some ugliness in __builtin:item where it used to_table() to just get_name(), did you get that? |
19:06 |
kaeza |
FWIW, I overwrote a commit that copied the tables, but figured someone would want to do `core.itemdef_default.stack_max = 1337` and affect both nodes and craftitems |
19:07 |
kaeza |
hmm |
19:07 |
kaeza |
lemme look t that |
19:10 |
kaeza |
oops, missed that one, fixed locally |
19:10 |
|
MinetestForFun joined #minetest-dev |
19:14 |
kaeza |
ShadowNinja, https://github.com/kaeza/minetest/commit/c2f3e43f7a162d70fd04704e8a03004c8f49d950 |
19:15 |
ShadowNinja |
kaeza: Yes, that's exactly why I thought it was better as a metetable. |
19:16 |
ShadowNinja |
kaeza: Um, itemstring isn't actually used -- right? Otherwise you'll lose item wear and metadata. |
19:19 |
rubenwardy |
Grrr, making me rebase, Kaeza |
19:21 |
kaeza |
ShadowNinja, what do you think about removing self.itemstring entirely, store the itemstack directly into the instance, and serialize `stack:to_table()` in `get_staticdata`? |
19:23 |
kaeza |
(of course, adding compat code for old items) |
19:23 |
ShadowNinja |
kaeza: That sounds good. Wear is somehow stored though, so I must be missing something. |
19:24 |
kaeza |
yes, I noticed dropping an used tool and picking it up again keeps the wear |
19:24 |
kaeza |
is :get_count() returning the same as :get_wear() somehow? |
19:25 |
kaeza |
(or rather, the inverse of :set_wear()?) |
19:25 |
ShadowNinja |
kaeza: Regular droping uses to_string (line 7) |
19:25 |
kaeza |
can't tpye |
19:25 |
Krock |
get_count() must return 1 on tools |
19:26 |
Krock |
it doesn't have to do with wear |
19:26 |
ShadowNinja |
kaeza: So wear, etc are only dropped if the count is more than stack_max. |
19:26 |
ShadowNinja |
Items shouldn't limit that though. |
19:27 |
ShadowNinja |
I'd like my stacks of 65535 to stay that size. |
19:27 |
ShadowNinja |
The issue is adding that to an inventory... |
19:27 |
kaeza |
hence, dropping itemstring and storing stack properly |
19:28 |
ShadowNinja |
So I guess the limit is appropriate. Just store the stack or the table in the defnition and avoid itemstrings. |
19:28 |
ShadowNinja |
stack would be better. |
19:28 |
ShadowNinja |
Make sure to keep compatability though. |
19:29 |
ShadowNinja |
Nothing should use itemstring directly, and you can wrap set_item's argument in Itemstack() to make sure it's a stack. |
19:29 |
kaeza |
is keeping dropped items "consistent" between versions a priority? (e.g. dropping something in 0.4.10 and picking it in 0.4.11) I always thought of dropped items to be "temporary" anyway |
19:30 |
kaeza |
moreso with the recent addition of TTL |
19:32 |
kaeza |
eh I don't think support code would be too much either |
19:32 |
* kaeza |
codes |
19:34 |
kaeza |
erm, wait... it is stored as a serialized table already.. |
19:49 |
* ShadowNinja |
is trying to fix the Android main menu loading. |
19:51 |
kaeza |
other thing: the "merge nearby items" feature is run every damn step... is this really necessary? |
19:51 |
Calinou |
should be run every second |
19:51 |
kaeza |
would you mind if I run it every half a second? |
19:51 |
kaeza |
or that |
19:53 |
ShadowNinja |
kaeza: It should run as long as the item's falling. |
20:00 |
ShadowNinja |
Some things I want to push: |
20:00 |
ShadowNinja |
Simplify loading of Android version of menu |
20:00 |
ShadowNinja |
Fix leaking global in texture pack menu |
20:00 |
ShadowNinja |
Add minetest.global_exists() |
20:01 |
ShadowNinja |
Comments please. |
20:02 |
ShadowNinja |
Details on Android one: http://sprunge.us/CSZg?diff |
20:09 |
|
FR^2 joined #minetest-dev |
20:17 |
|
Miner_48er joined #minetest-dev |
20:20 |
ShadowNinja |
hmmmm, celeron55, sfan5: ^ Are those O.K. |
20:21 |
sfan5 |
what is 'those'? |
20:21 |
ShadowNinja |
Note: I haven't actually build the Android version. |
20:21 |
ShadowNinja |
sfan5: Look up. |
20:21 |
sfan5 |
oh |
20:21 |
|
monty joined #minetest-dev |
20:21 |
sfan5 |
<ShadowNinja> Simplify loading of Android version of menu |
20:21 |
sfan5 |
<ShadowNinja> Fix leaking global in texture pack menu |
20:21 |
sfan5 |
yes |
20:21 |
sfan5 |
<ShadowNinja> Add minetest.global_exists() |
20:21 |
sfan5 |
no |
20:22 |
ShadowNinja |
sfan5: Why no? |
20:22 |
sfan5 |
because I disagree with replacing builtin lua features with function |
20:22 |
sfan5 |
+s |
20:23 |
ShadowNinja |
sfan5: That's just `rawset(_G, name) ~= nil`. |
20:23 |
ShadowNinja |
Er, rawget. |
20:23 |
ShadowNinja |
It doesn't remove rawget. |
20:23 |
sfan5 |
but it makes checking for globals the way every lua programm would do it 'wrong' |
20:23 |
ShadowNinja |
sfan5: ^ It doesn't replace it, it's just a clearer way to do something. |
20:24 |
ShadowNinja |
sfan5: Because it is wrong, you should'nt check for globals like that. |
20:24 |
sfan5 |
does it say that in the PIL? |
20:25 |
ShadowNinja |
Either you use rawget, which is ugly, or I have to limit it even more. |
20:25 |
ShadowNinja |
sfan5: Of course not, it's a general programing bad practive, not a Lua one. |
20:25 |
ShadowNinja |
Lua is very lenient, but that makes certain classes of bugs really easy, like misspelling ones. |
20:26 |
sfan5 |
checking for globals by just testing whether they exist is bad practice? |
20:26 |
ShadowNinja |
And global collision ones. |
20:26 |
hmmmm |
looks good to me |
20:27 |
ShadowNinja |
sfan5: Checking for globals by checking their value is bad. |
20:27 |
|
proller joined #minetest-dev |
20:28 |
ShadowNinja |
hmmmm: For all commits? |
20:28 |
hmmmm |
i was referring to the last one you pasted, the android lua menu one |
20:28 |
sfan5 |
ShadowNinja: why is that bad? |
20:28 |
hmmmm |
really wish there was like a template that could be used instead |
20:29 |
hmmmm |
sfan5, i'd imagine it has pretty horrible performance ramnficaitions |
20:29 |
sfan5 |
mod loading being too slow is currently not a problem |
20:30 |
hmmmm |
could also be another reason. i'm not a lua expert |
20:30 |
hmmmm |
was just guessing |
20:30 |
sfan5 |
thats why I'm asking |
20:30 |
sfan5 |
I'm not a lua expert either |
20:30 |
ShadowNinja |
sfan5: Because it's indistinguishable from using it. So if you misspell something and access a non-existent global you should get an error. |
20:31 |
sfan5 |
add a setting and I'm ok with it |
20:31 |
sfan5 |
warnings only serve as confusion for users |
20:32 |
ShadowNinja |
You can't tell the difference between `if intllib then...` and `minetest.after(0, intllib.Getter, minetest.get_current_modname())` |
20:33 |
ShadowNinja |
sfan5: I can't remove the warnings, as I already discussed. We'll just have to wait a few days for modders to fix their mods. |
20:34 |
sfan5 |
wait a few days |
20:34 |
sfan5 |
pff |
20:34 |
sfan5 |
as if |
20:34 |
sfan5 |
modders won't fix their mods that fast |
20:34 |
ShadowNinja |
I'll probably get yelled at a lot, but I've already fixed some real bugs. |
20:35 |
sfan5 |
please provide a tl;dr why you can't remove the warning |
20:35 |
ShadowNinja |
sfan5: Anyone using latest will. By a week after the next release anything that's maintained at all should be fixed. |
20:35 |
hmmmm |
heh |
20:35 |
hmmmm |
javascript solved this by distinguishing between null and undefined |
20:35 |
ShadowNinja |
sfan5: Because no moders will see it and nothing will be fixed! |
20:37 |
sfan5 |
annoying the users with warnings and making them get on the modders nerves is not a good solution |
20:37 |
celeron55 |
what does javascript's null vs. undefined solve? i have so far seen nothing it is useful for, only downsides |
20:38 |
ShadowNinja |
sfan5: On the contrary, it is, because it will get bugs fixed. |
20:38 |
|
monty joined #minetest-dev |
20:42 |
ShadowNinja |
Here's the issue: mods have global detectors such as `if intllib then`. These now (rightly) cause warnings if the global doesn't exist. The only solution right now is something like `if rawget(_G, "intllib") then` since it bypasses the strict metatable. global_exists just makes this a little cleaner and more readable. |
20:43 |
ShadowNinja |
Another option is get_global_or_nil or something like that, that just wouldn't print warnings. |
20:49 |
Sokomine |
another way to circumvent the potential non-existance of global variables might be to check if the mod which is known to define it exists. that global_exists would be a more practical approach than that |
20:49 |
Sokomine |
you really ought to discuss this on the forum |
20:50 |
kaeza |
"self.object:get_luaentity().itemstack" |
20:50 |
kaeza |
·_· |
20:54 |
ShadowNinja |
kaeza: Oh, yes. I've seen things like that a few times before. |
20:55 |
kaeza |
it's basically saying "x = (1 + 1) - 1" |
20:58 |
|
Amaz joined #minetest-dev |
20:58 |
celeron55 |
i agree with discussing this on the forum |
20:59 |
celeron55 |
people won't be so much against it if they hear the reasonings beforehand and can ask questions before it's taken into use |
20:59 |
|
CraigyDavi_ joined #minetest-dev |
21:02 |
kaeza |
Lua distinguishes between "no value" and "nil", but such functionality is only available from C :/ |
21:03 |
kaeza |
if (lua_type(L, index) == LUAT_NONE) ... |
21:04 |
kaeza |
or was it LUA_TNONE? can't remember now |
21:06 |
|
shadowzone joined #minetest-dev |
21:06 |
|
asl joined #minetest-dev |
21:06 |
|
monty joined #minetest-dev |
21:08 |
Megaf |
[20:38:12] <ShadowNinja> sfan5: On the contrary, it is, because it will get bugs fixed. |
21:08 |
Megaf |
Agree, we had actual bugs fixed on plantlife and homedecor because of these warnings |
21:08 |
Megaf |
I like them |
21:08 |
VanessaE |
ShadowNinja: maybe what's needed is that any of those "undeclared" warnings be made less... "the sky is falling" worrisome if they occur during init? |
21:09 |
VanessaE |
Megaf: one actual bug, in plants_lib. |
21:10 |
Megaf |
VanessaE: only one? |
21:10 |
Megaf |
anyway, we we found one bug and fixed it is already a fantastic thing |
21:10 |
VanessaE |
(the advent of an if_exists() function would help, but I wonder if ^^^ that would be easier and perhaps more transparent) |
21:12 |
VanessaE |
frankly I'm hesitant to update to current HEAD now. I shudder to see how many of these kinds of warnings Dreambuilder will generate. |
21:12 |
|
marioxcc joined #minetest-dev |
21:13 |
marioxcc |
Hello. What's the recommended way to do log rotation of minetest? |
21:13 |
VanessaE |
marioxcc: manually. |
21:14 |
marioxcc |
VanessaE: why? |
21:14 |
VanessaE |
well unless you have a preferred utility to do it, mv debug.txt debug.txt.old ; minetest(server) is about as good as anything else |
21:14 |
VanessaE |
unix logrotate(8) utility might help |
21:15 |
marioxcc |
VanessaE: I took a look at logrotate. Also, moving the file doesn't works, the file descriptor will point to the new file. |
21:16 |
marioxcc |
Does minetest have some level of awareness of log rotation? |
21:16 |
VanessaE |
if minetest is running, sure. |
21:16 |
VanessaE |
so shut your server down, flip the logs, restart. |
21:17 |
marioxcc |
well, that's not a satisfactory method. |
21:17 |
marioxcc |
for it requires to shut down minetest when rotating |
21:17 |
VanessaE |
you should shut your server down daily for backups anyway |
21:18 |
VanessaE |
do your log rotation then |
21:26 |
|
proller joined #minetest-dev |
21:31 |
kaeza |
https://mediacru.sh/n-syaWQzcTSJ :D |
21:32 |
|
marioxcc left #minetest-dev |
21:33 |
VanessaE |
kaeza: I said LOG rotation, not MESH rotation :P |
21:34 |
shadowzone |
Lol |
21:34 |
kaeza |
that is a dropped stack... maybe I should limit the size :P |
21:35 |
VanessaE |
um. yeah. |
21:48 |
Megaf |
kaeza: it was a LOG, not a SAND rotation |
21:50 |
Megaf |
This is a log, http://www.catalogclassics.com/graphics/products/large/VN3252.jpg |
21:50 |
Megaf |
In minetest we call them trees |
21:50 |
Megaf |
lol |
21:53 |
Megaf |
what would the lua line would be to create a new group of items? |
21:53 |
Megaf |
like, we have the group wood planks, and group wires |
21:53 |
Megaf |
neverming, I will read some code |
21:54 |
Megaf |
and sorry, wrong channel |
22:01 |
|
Megaf joined #minetest-dev |
22:07 |
|
shadowzone joined #minetest-dev |
22:11 |
|
shadowzone joined #minetest-dev |
22:15 |
|
luizrpgluiz joined #minetest-dev |
22:16 |
luizrpgluiz |
hi, what are the plans for minetest 0.4.11? |
22:18 |
|
Wayward_One joined #minetest-dev |
22:36 |
ShadowNinja |
luizrpgluiz: We plan to release it -- eventually. :-P |
22:37 |
ShadowNinja |
There's nothing specially planned for it. |
22:37 |
kaeza |
ShadowNinja, https://github.com/kaeza/minetest/commit/680a5edcb8962839916a90fe0ee4bcd3c859167b |
22:39 |
kaeza |
left a debug stmt there, it's gone locally |
22:40 |
|
diemartin joined #minetest-dev |
22:40 |
ShadowNinja |
kaeza: Use ItemStack always, so you have a copy instead of a reference. |
22:41 |
|
CraigyDavi joined #minetest-dev |
22:41 |
diemartin |
where, exactly? |
22:42 |
diemartin |
the only place I use the stack directly there it is intended (because I modify the count) |
22:43 |
ShadowNinja |
kaeza: At the top of set_item. You're also missing "self." before "itemstring = " in deserialization. |
22:44 |
ShadowNinja |
er, itemstack = |
22:44 |
ShadowNinja |
You should do "self.itemstack = ItemStack(static_data)" |
22:45 |
ShadowNinja |
Er, NVM the first one. |
22:45 |
kaeza |
ah derp |
22:45 |
ShadowNinja |
But "self.itemstring = staticdata" should be "itemstack = ItemStack(static_data)" |
22:46 |
kaeza |
already fixed locally |
22:46 |
ShadowNinja |
(And staticdata -> static_data) |
22:46 |
kaeza |
eh? |
22:47 |
ShadowNinja |
Second statement wipes out effect of first: ent.itemstack:set_count(left); ent.itemstack = ent_stack |
22:48 |
kaeza |
already fixed locally, too... |
22:50 |
ShadowNinja |
kaeza: The Minetest API is inconsistent. It has get_name and getpos, and mixes like get_worldpath. everythingsmooshedtogetherwithoutdistinction style is ugly, so I decided that everything that wasn't a well-established compound word (such as filename) should be seperated with underscores and put it in the Lua style guide. |
22:51 |
kaeza |
that's new |
23:11 |
|
khonkhortisan joined #minetest-dev |
23:24 |
|
luizrpgluiz left #minetest-dev |
23:26 |
|
zat joined #minetest-dev |
23:33 |
|
khonkhortisan joined #minetest-dev |
23:36 |
|
paramat joined #minetest-dev |