Time |
Nick |
Message |
00:04 |
est31 |
hmmmm, time to look at one of these: https://github.com/minetest/minetest/labels/Needs%20second%20review |
00:16 |
|
Lunatrius` joined #minetest-dev |
00:35 |
|
paramat joined #minetest-dev |
01:08 |
paramat |
#2702 i'm considering making 'ignore' walkable, to stop item- and node- entities falling through it at the bottom of the world, or if falling a long distance into an ungenerated chunk and becoming buried. any problems with this idea? |
01:08 |
ShadowBot |
https://github.com/minetest/minetest/issues/2702 -- Bottom of the world weirdness |
01:09 |
est31 |
isnt it already |
01:09 |
est31 |
I mean you can walk on ignore |
01:09 |
paramat |
also considering making 'air' not ground content so that caves do not waste time replacing air with air |
01:09 |
est31 |
at least client side |
01:09 |
paramat |
yes it's impassable but, link coming.. |
01:10 |
paramat |
https://github.com/minetest/minetest/blob/master/src/nodedef.cpp#L518 |
01:11 |
paramat |
walkable = true should stop entities passing through |
01:13 |
paramat |
https://github.com/minetest/minetest/blob/master/builtin/game/item_entity.lua#L159 code was added to stop item-entities, but falling lua still needs a fix |
01:44 |
hmmmm |
paramat: setting air to air doesn't really take up any cpu time |
01:45 |
est31 |
yea thought that too but thought there might be something I overlook |
01:45 |
hmmmm |
est31: #1176, you +1ed? |
01:45 |
ShadowBot |
https://github.com/minetest/minetest/issues/1176 -- Add get_player_velocity() method |
01:45 |
hmmmm |
the server doesn't track player velocity |
01:46 |
hmmmm |
the code looks alright, as long as you don't know the particulars of how minetest works. that code actually does nothing useful. |
01:46 |
hmmmm |
did the guy who made the PR even test it?? |
01:46 |
est31 |
they said it works with a separate server |
01:46 |
hmmmm |
"a separate server"? |
01:46 |
est31 |
they said they tested it with multiple (3) connected clients |
01:47 |
est31 |
but yea I've heard the server doesn't return the velocity |
01:47 |
est31 |
err track* |
01:52 |
hmmmm |
right, so what are they aiming to accomplish with that code? |
01:54 |
est31 |
adding the callback |
01:55 |
est31 |
but you are likely to be right |
01:55 |
est31 |
because I never see the speed set outside localplayer.cpp |
01:55 |
est31 |
yes it is set in player.cpp |
01:55 |
est31 |
but only for acceleration |
01:56 |
est31 |
ah sorry |
01:56 |
est31 |
it is calculated |
01:56 |
est31 |
https://github.com/minetest/minetest/blob/bc55ef337cc83a5c31d4fdafba352a7a26921900/src/network/serverpackethandler.cpp#L825 |
01:56 |
est31 |
"calculated" |
01:56 |
est31 |
as it seems its calculated client-side |
01:56 |
est31 |
then sent to the server |
01:56 |
hmmmm |
right but the problem is that it's so unreliable |
01:57 |
est31 |
and then applied |
01:57 |
est31 |
yes, there is no verification at all |
01:57 |
hmmmm |
because of network jitter |
01:57 |
est31 |
and that |
01:57 |
paramat |
hmmmmm yeah. cavegen actually now checks for air to avoid reaplacing it, that check could be absorbed into the 'ground content' check for another small gain, so i'll go ahead with that |
01:58 |
hmmmm |
i'd rather ask the guy with the PR what exactly he's doing and if this patch actually makes a difference |
01:58 |
est31 |
asking for usecases? |
01:58 |
hmmmm |
holding off on another +1 |
01:58 |
est31 |
good idea |
01:58 |
hmmmm |
yes... |
01:58 |
hmmmm |
dare I ask somebody for their usecase when they propose to add an API only useful to them for their own private reasons? |
01:58 |
|
blaise joined #minetest-dev |
01:59 |
est31 |
you shouldn't do any custom gravity calculations |
01:59 |
est31 |
thats right |
02:00 |
est31 |
or other things that influence the real world |
02:00 |
est31 |
but you could for example use it for some visualisation |
02:01 |
est31 |
I'd have been more sceptical when there were a set_player_velocity method |
02:01 |
est31 |
because then we enter dangerous territory |
02:06 |
hmmmm |
#1748 looks good to me, aside from some nitpicky style issues |
02:06 |
ShadowBot |
https://github.com/minetest/minetest/issues/1748 -- Add lua errors to error dialog by rubenwardy |
02:06 |
est31 |
(*error) = ? |
02:07 |
hmmmm |
yeah |
02:07 |
est31 |
if(!mod |
02:07 |
hmmmm |
yeah |
02:07 |
est31 |
*error=NULL) |
02:07 |
hmmmm |
also a line in the .h is way over 80 columns |
02:07 |
est31 |
ah |
02:07 |
est31 |
yea |
02:07 |
hmmmm |
would appreciate if the error parameter was renamed error_msg or something |
02:07 |
est31 |
makes sense |
02:08 |
hmmmm |
allocating and then copying a std::string for such a mundane task seems kinda eh |
02:08 |
hmmmm |
you never see functions follow that pattern of bool foobar(params, std::string *error_msg) { .. |
02:09 |
hmmmm |
usually for error returning functions they'd return an integer that's an index to the particular error or 0 on success |
02:09 |
est31 |
yea |
02:09 |
hmmmm |
or in the case of a boolean return value it'd be true on success, false on failure, and then errno would be the specific error, and then strerror would be the textual description |
02:09 |
est31 |
but here we get the error string from lua |
02:09 |
hmmmm |
right |
02:10 |
|
prozacgod joined #minetest-dev |
02:10 |
hmmmm |
how can this be made more uh... |
02:10 |
est31 |
and it has more information than just "LUA_PARSER_ERROR" |
02:10 |
hmmmm |
what's the term i'm looking for |
02:10 |
hmmmm |
return a const char * |
02:10 |
est31 |
C has this limitation, where you can only return a single value |
02:10 |
hmmmm |
0 (NULL) on success |
02:10 |
hmmmm |
pointer to the error string on failure |
02:10 |
hmmmm |
? |
02:11 |
hmmmm |
std::string error_msg; |
02:11 |
hmmmm |
if (!loadMod(..., &error_msg) { |
02:11 |
hmmmm |
vs. |
02:11 |
hmmmm |
const char *error_msg = loadMod(...); |
02:11 |
hmmmm |
if (error_msg) { ... |
02:11 |
hmmmm |
what looks better? |
02:12 |
est31 |
we really only return false if we have a string |
02:12 |
est31 |
so its ok |
02:12 |
est31 |
both look good |
02:12 |
hmmmm |
so then just leave it as-is |
02:12 |
hmmmm |
too minor of an issue to be worth changing |
02:12 |
hmmmm |
not even issue |
02:13 |
est31 |
you want to merge it? |
02:13 |
hmmmm |
you do it |
02:14 |
hmmmm |
christ, every time i look at particle-related code it burns my eyes |
02:15 |
hmmmm |
nothing like a big if/else if chain for comparing strings when clearly an enum would've worked better instead along with enumToString() |
02:15 |
hmmmm |
:| |
02:15 |
est31 |
heh |
02:15 |
est31 |
horrible |
02:16 |
hmmmm |
oh ew |
02:16 |
hmmmm |
in fact no, this guy never heard of get*field() functions apparently |
02:16 |
hmmmm |
that's what that piece of code is actually doing |
02:17 |
hmmmm |
i really wish i looked closer at the particlespawner code. |
02:17 |
hmmmm |
i really really do. |
02:18 |
hmmmm |
it was merged at a point in my minetest career where I figured that I should make my standards for code submission more relaxed |
02:18 |
hmmmm |
big mistake |
02:18 |
est31 |
better having something broken than not having it at all |
02:18 |
hmmmm |
ha |
02:18 |
hmmmm |
really now |
02:19 |
hmmmm |
i totally disagree with that from a philisophical standpoint |
02:19 |
hmmmm |
i'd rather not erode minetest's image any more than it needs to as a bug-ridden, poor quality, excuse of a minecraft clone |
02:19 |
paramat |
hmmmmm, agreed |
02:20 |
hmmmm |
also bad code can cause problems later on when other developers go to look at it |
02:20 |
hmmmm |
or modify something |
02:26 |
est31 |
btw why return const char * |
02:26 |
est31 |
from how I see it, we have to return char * |
02:26 |
hmmmm |
you're acutally doing that? |
02:26 |
est31 |
because otherwise we cant free it |
02:27 |
hmmmm |
est31: http://lua-users.org/lists/lua-l/2015-04/msg00015.html |
02:27 |
hmmmm |
you don't need to free it, lua does |
02:28 |
hmmmm |
doesn't lua_tostring return const char *? |
02:28 |
est31 |
so either we use it immediately, or forget about it |
02:28 |
hmmmm |
and i thought we decided it's not worth changing that |
02:28 |
est31 |
ok |
02:28 |
est31 |
not worth adding that as comment and stalling pr merging |
02:37 |
est31 |
dammit sth works wrong |
02:38 |
hmmmm |
? |
02:38 |
est31 |
program crashes at startup |
02:38 |
est31 |
lemme stash and try whether its me |
02:40 |
est31 |
ah dammit |
02:40 |
est31 |
we do lua_pop |
02:40 |
est31 |
then lua gc sets in |
02:40 |
est31 |
and then |
02:40 |
est31 |
yea |
02:40 |
est31 |
perhaps dunno |
02:40 |
est31 |
but there is no error |
02:42 |
est31 |
hmmmm, what am I doing wrong? https://github.com/est31/minetest/commit/bc8da355698dbf7ec04057f47652a56ed3005661 |
02:42 |
hmmmm |
ehh |
02:42 |
hmmmm |
you shouldn't bother making that one change |
02:42 |
hmmmm |
I like the old return value better |
02:44 |
est31 |
still I wonder what the problem is |
02:44 |
est31 |
whatever |
02:44 |
est31 |
I'll push it without improvements |
02:44 |
hmmmm |
i dunno |
02:44 |
hmmmm |
oh i se |
02:44 |
hmmmm |
because the error message gets popped from the stack right away |
02:45 |
est31 |
yes that makes total sense |
02:45 |
est31 |
but there is no error |
02:45 |
hmmmm |
so you're not able to return the raw pointer of it |
02:46 |
hmmmm |
hrm, i don't know |
02:47 |
hmmmm |
i can't see a reason why that would crash on success |
02:52 |
est31 |
about #2740 and #2592 |
02:52 |
ShadowBot |
https://github.com/minetest/minetest/issues/2740 -- Fix red screen when damage is disabled by SmallJoker |
02:52 |
ShadowBot |
https://github.com/minetest/minetest/issues/2592 -- ignore lava damage, fall damage and drowing if damage is disabled by HybridDog |
02:52 |
est31 |
I think paramat is right |
02:52 |
est31 |
how long will it take to fix |
02:52 |
hmmmm |
what did paramat say |
02:53 |
est31 |
"Hmmmm or Zeno will soon fix this, so this should be closed." |
02:53 |
est31 |
to both |
02:53 |
est31 |
both address same issue |
02:53 |
hmmmm |
in both very roundabout ways |
02:53 |
hmmmm |
the solution is quite simple |
02:53 |
hmmmm |
i'll get it yeah |
02:56 |
hmmmm |
nice |
02:57 |
hmmmm |
i have to figure out breakage in the freebsd build first |
02:57 |
hmmmm |
iconv: no matching function for call to libiconv |
03:00 |
est31 |
the nrz buildbot works well |
03:00 |
est31 |
iconv: |
03:00 |
est31 |
I did the iconv commit |
03:06 |
paramat |
cool |
03:07 |
hmmmm |
freaking glib |
03:07 |
hmmmm |
this is going to break my system. |
03:08 |
est31 |
even ulibc has iconv |
03:08 |
est31 |
and it has u for µ |
03:10 |
paramat |
(oops 2740 was already closed, removing comment) |
03:12 |
hmmmm |
oh man.. |
03:12 |
hmmmm |
i have no idea how to fix this |
03:14 |
est31 |
thats bad |
03:14 |
est31 |
iconv is missing entirely? |
03:18 |
paramat |
http://i.imgur.com/T3wJRQS.png adding some swamp in rainforest |
03:22 |
hmmmm |
okay i think i got it |
03:23 |
hmmmm |
est31, why do you have that special case for const char ** with freebsd? |
03:25 |
|
prozacgod joined #minetest-dev |
03:25 |
est31 |
because nrz's buildbot failed and I looked up the man page in the internet |
03:25 |
est31 |
and there it was char ** |
03:25 |
hmmmm |
hrmm |
03:26 |
hmmmm |
i need to figure out some way to detect BSD or GNU iconv |
03:27 |
est31 |
to test do a PR |
03:27 |
hmmmm |
it works with nerzhul's buildbot because it doesn't have glib20 installed on it |
03:28 |
est31 |
ah |
03:28 |
hmmmm |
anybody who actually uses minetest on freebsd is going to have glib... |
03:28 |
est31 |
or not update |
03:32 |
est31 |
there must be a glibc #define |
03:32 |
hmmmm |
this might be bad but |
03:32 |
hmmmm |
I'm going to use #ifdef _ICONV_H_ to detect BSD glibc |
03:32 |
hmmmm |
i mean libiconv |
03:32 |
est31 |
http://stackoverflow.com/questions/4266354/how-to-tell-if-glibc-is-used |
03:36 |
hmmmm |
... i fixed my mistake |
03:58 |
hmmmm |
fantastic |
03:58 |
hmmmm |
<invalid UTF-8 string> |
03:58 |
hmmmm |
everything here is an invalid utf-8 string :/ |
03:59 |
est31 |
:( |
04:00 |
hmmmm |
wtf it feels like there's some kind of massive performance regression |
04:24 |
hmmmm |
success! |
04:24 |
hmmmm |
i see text again |
04:39 |
|
zat joined #minetest-dev |
04:42 |
est31 |
what was the problem |
04:58 |
est31 |
hmmmm, where do you think should I add a new superclass for minimap update thread and mesh update thread? |
05:13 |
|
jin_xi joined #minetest-dev |
05:15 |
|
Puma_rc joined #minetest-dev |
05:28 |
hmmmm |
a superclass? |
05:29 |
hmmmm |
the problem was that i was linking against the wrong version of the library |
05:29 |
est31 |
ok |
05:30 |
est31 |
yes I want to abstract away the queue, and the blocking for the queue "" |
05:30 |
est31 |
-" -" |
05:37 |
|
RealBadAngel joined #minetest-dev |
05:41 |
est31 |
I'll use util/thread.h |
05:41 |
|
Megaf joined #minetest-dev |
05:44 |
|
Hunterz joined #minetest-dev |
05:45 |
|
blaise joined #minetest-dev |
06:11 |
VanessaE |
[06-28 19:06] <hmmmm> are you sure we don't have wallmounted meshnodes already? |
06:11 |
VanessaE |
a bit late to answer you but yes, we DO have wallmounted meshnodes |
06:11 |
VanessaE |
(homedecor's window shutters are an example of such) |
06:21 |
|
paramat left #minetest-dev |
06:25 |
hmmmm |
i hope there's not too much abstraction |
06:25 |
hmmmm |
ConsumerThread |
06:31 |
|
OldCoder joined #minetest-dev |
06:47 |
hmmmm |
est31: you there? |
06:47 |
hmmmm |
https://github.com/kwolekr/minetest/commit/2cbb27dd08d760166b159860e8b02ebd91518d93 |
06:50 |
est31 |
ha lol ShadowNinja removes those // __ANDROID__ |
06:50 |
est31 |
things you add them |
06:50 |
hmmmm |
we should have a chat about them |
06:50 |
est31 |
you should perhaps determine which you want |
06:50 |
hmmmm |
i want |
06:50 |
est31 |
I'm neutral |
06:50 |
hmmmm |
how the hell could you figure out which block belongs to which without them |
06:50 |
hmmmm |
it's confusing at first glance |
06:51 |
hmmmm |
+1? |
06:52 |
est31 |
looks good yea |
06:52 |
est31 |
so you say you want a third person to look at it too? |
06:52 |
hmmmm |
hmm |
06:52 |
hmmmm |
in theory, yeah |
06:53 |
est31 |
I know, I bring up this discussion at this point where it profits me :) |
06:53 |
hmmmm |
I can completey understand why somebody might be okay with just one approval |
06:53 |
hmmmm |
but that policy is clearly not for the best |
06:55 |
est31 |
perhaps lets do the following: if sb proposes a PR, and sb else thinks this is a larger feature, then they e.g. tag it or somehow else indicate that they want "extended review". Then the PR needs three core devs to agree (whether from sb else, or from a coredev), but the person who sais this has to help reviewing. |
06:56 |
|
Puma_rc joined #minetest-dev |
06:56 |
est31 |
with "three coredevs" meaning that the author counts |
06:56 |
hmmmm |
sure, I suppose that works |
06:57 |
est31 |
hold that patch |
06:57 |
hmmmm |
we're stuck in such a hard place |
06:57 |
est31 |
why do you add it to the client libs? |
06:57 |
hmmmm |
because iconv isn't used on the server |
06:57 |
est31 |
string.cpp is used by server too isnt it? |
06:57 |
hmmmm |
ahh good point |
07:00 |
hmmmm |
revision 2 https://github.com/kwolekr/minetest/commit/a8653e7f38d07d8bd5acc36758730280e5d16d9f |
07:01 |
est31 |
hrmm, iconv can miss on non-freebsd too, can it |
07:01 |
est31 |
then its ok to put it into a "general" section |
07:02 |
hmmmm |
isn't that a general section? |
07:02 |
est31 |
yes |
07:02 |
est31 |
therefore its good |
07:03 |
est31 |
do we really need this _ICONV_H_ thing? |
07:03 |
hmmmm |
yes |
07:03 |
est31 |
perhaps replace it with a check for glibc instead? |
07:03 |
hmmmm |
no can do sir |
07:03 |
Hunterz |
is possible connect to server compiled against irrlicht 1.8.x with client compiled against irrlicht 1.9dev ? |
07:04 |
hmmmm |
yes |
07:04 |
Hunterz |
thx |
07:04 |
est31 |
Hunterz, in fact, you only need irrlicht for defines |
07:04 |
est31 |
we try to maintain connectability for long times |
07:05 |
Hunterz |
irrlich have ugly bug with keys |
07:05 |
est31 |
we have to, as our servers are mostly recent builds, but our clients keep using year old sw |
07:05 |
est31 |
yea input on irrlicht < 1.9 is highly broken |
07:06 |
est31 |
no entry of äöüßê on linux possible |
07:06 |
est31 |
this 7 or 4 or whatever bug on azerty keyboards |
07:06 |
est31 |
then the num lock thing |
07:06 |
est31 |
teaches us old != mature |
07:06 |
est31 |
whatever |
07:07 |
est31 |
hmmmm, glibc check wont work? |
07:07 |
Hunterz |
yea, these bugs... |
07:07 |
hmmmm |
that is there to check which version of iconv is used |
07:07 |
hmmmm |
BSD or GNU |
07:07 |
hmmmm |
glibc check basically only tells you if you are or are not on linux |
07:08 |
est31 |
why not use the inversion of __GLIBC__ |
07:08 |
|
Darcidride joined #minetest-dev |
07:08 |
hmmmm |
because BSD can have two versions of iconv installed at the same time |
07:09 |
est31 |
can you do a pr and check whether nrz's bsd works? |
07:09 |
Hunterz |
btw minimap is really nice, like reis minimap on the minecraft |
07:10 |
est31 |
blame RealBadAngel for it |
07:10 |
est31 |
if all works, merge |
07:10 |
Hunterz |
found some cosmetic bug - when client loaded, minimap render only loaded chunks, client must rotate 360 degs, then minimap are completely filled |
07:11 |
|
kilbith joined #minetest-dev |
07:11 |
est31 |
yea its the "occlusion" behaviour |
07:11 |
est31 |
the server only sends blocks which are "interesting" for the client |
07:11 |
est31 |
thats to spare resources |
07:12 |
est31 |
and before, it was only "interesting" what was going on before a player, not behinf |
07:12 |
est31 |
behind* |
07:12 |
est31 |
in front of* |
07:12 |
Hunterz |
maybe will be fine some cache on the clientside |
07:12 |
est31 |
the client caches it already |
07:12 |
RealBadAngel |
its not up to minimap |
07:12 |
est31 |
also question is whether we want it |
07:13 |
est31 |
you know, server being wasteful |
07:13 |
est31 |
only for minimap |
07:13 |
RealBadAngel |
client already stores around 1,8k of blocks |
07:13 |
Hunterz |
looks like when reconnect to server and enable minimap must again rotate |
07:14 |
RealBadAngel |
same is without minimap |
07:14 |
RealBadAngel |
it is not minimap deciding whats loaded, just you walkin around |
07:15 |
VanessaE |
seems like a one-time "load everything around the player" step might be prudent. |
07:15 |
VanessaE |
but that would need the client to be able to request blocks |
07:15 |
hmmmm |
hey RealBadAngel, https://github.com/minetest/minetest/blob/master/src/minimap.h#L63 what is the significance of the number "512"? |
07:15 |
VanessaE |
(which it can't I think) |
07:16 |
RealBadAngel |
maximum size of the scan |
07:16 |
hmmmm |
oh |
07:16 |
hmmmm |
well why don't you say that |
07:16 |
hmmmm |
in terms of a constant expression or a comment |
07:17 |
RealBadAngel |
ok, i will add comment |
07:17 |
hmmmm |
it's okay |
07:17 |
hmmmm |
i already did |
07:18 |
RealBadAngel |
btw, it shall be lowered, to 256x256 |
07:18 |
RealBadAngel |
512x512 was intended to be maximum, but client doesnt store such big area |
07:18 |
Hunterz |
when connect to server, enable minimap disconnect, connect again, must enable mnimap again, will be possible save state? |
07:19 |
RealBadAngel |
Hunterz, no. Minimap can see blocks that are loaded, data for minimap is created together with block mesh |
07:20 |
RealBadAngel |
theres no way to store such data over restart |
07:20 |
VanessaE |
actually, there is. |
07:20 |
RealBadAngel |
huh? |
07:20 |
VanessaE |
the "local map saving" feature could theoretically be exploited to do this |
07:21 |
est31 |
yes |
07:21 |
est31 |
theoretically |
07:21 |
Hunterz |
every connect to server must press key to again enable minimap? |
07:21 |
VanessaE |
but code would be needed to reload the data from that saved map |
07:21 |
est31 |
question is is it worth the effort |
07:21 |
est31 |
I mean its like when you clear the browser cache and request a website |
07:21 |
VanessaE |
est31: on slower connections, undoubtedly, but I'd guess no less than 25% of the data saved will have to be re-downloaded anyway |
07:22 |
RealBadAngel |
i highly doubt that. managing caches when connecting to another servers and such.... ouch |
07:22 |
RealBadAngel |
hmmmm, are you changing minimap's code? |
07:22 |
VanessaE |
one of the guys in #minetest was having such terrible connection quality due to an ISP network issue that he couldn't even sustain an effective rate of a few hundred Kbps |
07:23 |
hmmmm |
yes |
07:23 |
hmmmm |
just cleaning up some things |
07:23 |
RealBadAngel |
what are you doing exactly? |
07:23 |
VanessaE |
so reloading the map data from such a cache would absolutely have been faster for him (and me, at the time. I was being choked down to around 4 Mbps). |
07:23 |
RealBadAngel |
i thought i already made everything you wanted |
07:24 |
hmmmm |
you'll see it when i'm done |
07:24 |
hmmmm |
there were still more things.. |
07:24 |
est31 |
VanessaE, I guess it would be a much better improvement to only send diffs of map data around, not the whole block |
07:24 |
VanessaE |
est31: agreed |
07:24 |
VanessaE |
but that means a new protocol version |
07:25 |
est31 |
so what |
07:25 |
est31 |
we are developers |
07:25 |
VanessaE |
yes but users are lazy :) |
07:25 |
est31 |
we change the protocol |
07:25 |
est31 |
using the cache would require it too |
07:25 |
VanessaE |
true |
07:25 |
VanessaE |
(because of the need for client-side block requesting) |
07:26 |
RealBadAngel |
hmmmm, thats rather not kind changing my code without even talkin to me |
07:26 |
VanessaE |
or rather that + being able to tell if a block is actually outdated. |
07:26 |
hmmmm |
you're able to review it when i'm done |
07:27 |
RealBadAngel |
we will see |
07:27 |
|
deezl1 joined #minetest-dev |
07:36 |
RealBadAngel |
Hunterz, about saving current mode, thats possible |
07:36 |
RealBadAngel |
and is good idea actually |
07:36 |
Hunterz |
I know, all is possible :) |
07:36 |
hmmmm |
also you realize that the line length limit is 80-90, right? |
07:37 |
est31 |
wrong |
07:37 |
est31 |
its 70-90 |
07:38 |
hmmmm |
it's 70^90 |
07:38 |
RealBadAngel |
there are no extremaly long line, just a few of them are a bit longer |
07:38 |
est31 |
no, 70 ^90 |
07:38 |
est31 |
err 70 ^ 90 |
07:38 |
hmmmm |
i recognize the problem with lines that are slightly longer |
07:38 |
est31 |
^ is a dual operator :p |
07:38 |
hmmmm |
the soft limit is 80 columns |
07:39 |
est31 |
wasnt it 70 |
07:39 |
hmmmm |
no |
07:39 |
RealBadAngel |
most long one has 106 chars |
07:39 |
hmmmm |
it's discouraged to go over 80 columns |
07:39 |
hmmmm |
but 90 is the absolute max |
07:39 |
est31 |
ok you are right |
07:39 |
hmmmm |
after that you have to make the line smaller somehow |
07:39 |
Hunterz |
its hard learn c, cpp, when know java ? |
07:39 |
est31 |
thought it were 70 |
07:41 |
RealBadAngel |
https://imgrush.com/s9mxey_lvFn5 |
07:41 |
RealBadAngel |
they doesnt look such long |
07:41 |
hmmmm |
yes, but you realize that people split their screens, right? |
07:42 |
|
Darcidride_ joined #minetest-dev |
07:42 |
est31 |
like me for example |
07:42 |
RealBadAngel |
oh cmon, im on 4:3 now and that long liner doesnt occupy even half the screen |
07:42 |
RealBadAngel |
on wide screen code takes 1/3 of the screen |
07:42 |
VanessaE |
I'm the outlier, I maximize my editor :P |
07:43 |
RealBadAngel |
instead of seeing a line you read chapters :P |
07:43 |
RealBadAngel |
becuase most of the space is already taken by tabs |
07:43 |
hmmmm |
then maybe you should minimize the amount of indentation in your code |
07:43 |
RealBadAngel |
limit shall be 80 USEFULL characters |
07:44 |
RealBadAngel |
not formatting ones |
07:44 |
RealBadAngel |
hmmm, stop joking please |
07:44 |
VanessaE |
I see 6 levels of indentation there |
07:44 |
VanessaE |
this is excessive? |
07:45 |
hmmmm |
4 should be preferred. |
07:45 |
hmmmm |
anything larger is a good indication that it might be time to refactor |
07:45 |
VanessaE |
I'm not against that notion, but don't you think max 90 characters is a little archaic? |
07:45 |
hmmmm |
not really |
07:46 |
RealBadAngel |
yeah, cut the ifs, cut the loops put everything into arrays, i know that song |
07:46 |
RealBadAngel |
sorry it doesnt work that way :P |
07:46 |
hmmmm |
if we actually wanted it to fit code into a video terminal, then 80 columns would be the hard limit |
07:46 |
VanessaE |
I';m just saying, it's not like we're really stuck with said video terminals. |
07:46 |
RealBadAngel |
who the duck is reading code in terminals nowadays??? |
07:46 |
hmmmm |
RealBadAngel: let's use Mapper::getMinimapTexture() as an example |
07:46 |
VanessaE |
that would literally be pointless - after all, you're coding for a game that by its very nature can't run in a hard console. |
07:47 |
hmmmm |
98% of the function is indented two levels |
07:47 |
hmmmm |
because it's completely encased inside of an if statement |
07:47 |
hmmmm |
right there, if i were writing that function, i would invert the condition and return early |
07:47 |
hmmmm |
look, i just saved 4 columns so far |
07:48 |
RealBadAngel |
where do you see return in getMinimapTexture? |
07:49 |
RealBadAngel |
and fyi, order of code is strictly an order of applying matrices operations |
07:50 |
RealBadAngel |
invert anything there, change order and effect will be fucked up |
07:56 |
RealBadAngel |
ouch, im commenting another function than you |
07:56 |
RealBadAngel |
sorry, i think i need a nap |
07:56 |
VanessaE |
no sleep for you :P |
07:57 |
RealBadAngel |
i havent sleep last night, and im starting to talkin nonsenes, i really should ;) |
07:57 |
|
Puma_rc joined #minetest-dev |
07:58 |
RealBadAngel |
bbl |
07:58 |
VanessaE |
cya |
08:00 |
|
Yepoleb_ joined #minetest-dev |
08:00 |
|
Puma_rc__ joined #minetest-dev |
08:03 |
|
Puma_rc joined #minetest-dev |
08:20 |
|
Krock joined #minetest-dev |
08:25 |
|
crazyR_mobile joined #minetest-dev |
08:31 |
VanessaE |
think I'll follow RBA's lead |
08:31 |
est31 |
don't sleep for a night? |
08:32 |
est31 |
:p |
08:59 |
|
Puma_rc joined #minetest-dev |
09:10 |
VanessaE |
hah |
09:11 |
VanessaE |
no, that wasn't the intent, but it's looking like I'm gonna end up doing that anyway :( |
09:20 |
|
Puma_rc joined #minetest-dev |
09:33 |
est31 |
:( |
09:35 |
|
sfan5 left #minetest-dev |
09:35 |
|
sfan5 joined #minetest-dev |
09:37 |
|
Puma_rc joined #minetest-dev |
10:17 |
|
Calinou joined #minetest-dev |
10:22 |
|
red1 joined #minetest-dev |
10:36 |
red1 |
how does minetest.item_place chose between minetest.item_place_node() and minetest.item_place_object() |
10:46 |
|
OldCoder joined #minetest-dev |
10:48 |
|
Puma_rc joined #minetest-dev |
10:56 |
|
Puma_rc joined #minetest-dev |
11:23 |
|
Darcidride joined #minetest-dev |
11:37 |
|
Puma_rc joined #minetest-dev |
11:47 |
|
Puma_rc_ joined #minetest-dev |
12:17 |
|
est31 joined #minetest-dev |
12:18 |
|
Darcidride_ joined #minetest-dev |
12:25 |
RealBadAngel |
est, that update threads pr looks ok |
12:31 |
est |
is that a +1? |
12:43 |
est |
thanks |
12:52 |
|
Zeno` joined #minetest-dev |
12:56 |
RealBadAngel |
est, yes |
12:56 |
RealBadAngel |
Zeno`, howdy? |
12:57 |
Zeno` |
hi RBA :) |
12:57 |
Zeno` |
10 days until a release? |
12:57 |
* Zeno` |
checks the commit log |
12:57 |
est |
~topic |
12:57 |
ShadowBot |
est: Minetest core development and maintenance. 0.4.13 release scheduled for August 10 2015. Chit-chat goes to #minetest. Consider this instead of /msg celeron55. http://irc.minetest.ru/minetest-dev/ http://dev.minetest.net/ |
12:57 |
Zeno` |
err 40 |
12:57 |
est |
Zeno`, off by one |
12:58 |
est |
month |
12:58 |
RealBadAngel |
Zeno`, im playing with VBO code, i would like to know if there are leaks, and if then where |
12:58 |
Zeno` |
I'm always off by at least one |
12:58 |
est |
heh |
12:58 |
Zeno` |
RealBadAngel, hmm ok. I haven't really been around but I can gather some data |
12:58 |
kilbith |
hey Zeno \o |
12:59 |
RealBadAngel |
lemme prepare PR then |
12:59 |
Zeno` |
I want to be back properly it's just... "difficult" |
12:59 |
Zeno` |
hi kilbith |
13:08 |
Taoki |
RealBadAngel: Highlight me when PR is up please. I will give it a try myself and mention what I notice about memory usage. |
13:11 |
Zeno` |
Hi... Taoki? |
13:11 |
Zeno` |
have we met? |
13:12 |
Taoki |
Zeno`: Hi. Not sure |
13:12 |
Zeno` |
est did you read the logs and what I said about you? :p |
13:12 |
est |
the do break stuff? |
13:12 |
Zeno` |
and that horrible, horrible do {} while(0); |
13:13 |
Zeno` |
yeah |
13:13 |
est |
I just copied behaviour from another part of minetest, it seems i shouldnt copy things |
13:13 |
Zeno` |
'tis confusing |
13:13 |
Zeno` |
yeah don't copy... most of the code is crap (LOL) |
13:13 |
est |
methods are expensive |
13:13 |
est |
and goto... |
13:13 |
est |
you know goto dino |
13:14 |
est |
https://xkcd.com/292/ |
13:14 |
Zeno` |
the main objection to goto is unbounded gotos |
13:14 |
Zeno` |
i.e. long jumps that can jump to anywhere in the program |
13:14 |
Zeno` |
c and C++ gotos are local (bounded) short jumps |
13:14 |
Zeno` |
and the meaning is clear; |
13:15 |
Krock |
<3 dino |
13:15 |
Zeno` |
break is a goto in essence anyway |
13:15 |
est |
yes |
13:15 |
est |
its kind of like the emscripten relooper |
13:15 |
est |
its a compiler asm -> javascript |
13:15 |
Zeno` |
never heard of it :( |
13:15 |
est |
so asm has gotos, what to do |
13:16 |
est |
make them loops |
13:16 |
Zeno` |
asm has unrestricted gotos... |
13:16 |
Zeno` |
loops *are* gotos :P~~~ |
13:16 |
Zeno` |
but anyway, I just found the usage of do {} while(0); kind of confusing |
13:16 |
Zeno` |
it's no big deal... |
13:17 |
est |
when I add // breakable? |
13:17 |
Zeno` |
just something I thought I'd mention |
13:17 |
est |
yea |
13:17 |
Calinou |
20 GOTO 10! |
13:17 |
Calinou |
is the only thing I know about gotos |
13:18 |
Zeno` |
10 PRINT "HELLO WORLD" |
13:18 |
Calinou |
(can someone ELI5 what's a goto?) |
13:18 |
Calinou |
(in #minetest probably) |
13:19 |
Zeno` |
in the case of do { } while(0); the loop is unconditional (the branch is optimised away). The "break" keyword is a 'local' jump out of the loop |
13:20 |
Zeno` |
the goto keyword can goto anywhere in the function (in other languages it can jump/goto anywhere in the program it likes) |
13:20 |
Zeno` |
which leads to spaghetti code |
13:21 |
Zeno` |
i.e. a break is an unconditional jump (out of the loop); and so is break |
13:21 |
Zeno` |
err so is goto |
13:23 |
kilbith |
https://lut.im/7sjctKw6/h83uRKy8 |
13:23 |
Zeno` |
ugh |
13:23 |
kilbith |
yurk :( |
13:23 |
Zeno` |
not lua stuff still |
13:24 |
est |
kilbith, perhaps that offset bug cheapie has? |
13:24 |
kilbith |
exact |
13:24 |
kilbith |
texture displacement |
13:26 |
Zeno` |
#2818 |
13:26 |
ShadowBot |
https://github.com/minetest/minetest/issues/2818 -- Make acc and vel deprecated in add_particle and search for acceleration and velocity instead by TeTpaAka |
13:26 |
Zeno` |
what's with all the strcmp calls? |
13:26 |
est |
make them == ? |
13:26 |
est |
good idea |
13:27 |
est |
but strcmp or something comparable gets called under the hood |
13:27 |
est |
so mostly a style issue |
13:28 |
Zeno` |
== won't work because key is a (const) char * |
13:28 |
Zeno` |
hmm |
13:31 |
est |
we can make the == 0 tp ! but dunno if that makes it more readable |
13:31 |
est |
to* |
13:32 |
Zeno` |
nah |
13:32 |
Zeno` |
I guess it's the best way for that function |
13:42 |
Zeno` |
For the upcoming release what are the highlights and objectives? |
13:47 |
kilbith |
checking guys plz #2855 |
13:47 |
ShadowBot |
https://github.com/minetest/minetest/issues/2855 -- Fix bugs in mainmenu by kilbith |
13:47 |
est |
blame the release manager |
13:47 |
est |
for not making a list |
13:47 |
est |
(its me) |
14:26 |
kilbith |
sfan5, what's your script for listing the new commits in you Windows builds thread ? we could re-use it for filing the changelog without pain |
14:26 |
kilbith |
*your |
14:27 |
sfan5 |
minetestbot does that |
14:27 |
est |
and its not quite perfect |
14:27 |
sfan5 |
using a modified git log command could achieve the same result |
14:27 |
est |
it records mods to |
14:27 |
est |
o |
14:27 |
sfan5 |
you can grep the mods out |
14:28 |
est |
and when you force push, it records it multiple times |
14:28 |
est |
so at the end you end up with git itself |
14:28 |
est |
a changelog shouldnt be a list of git changes |
14:28 |
est |
it should not include "typo fix in actionstream logging" |
14:29 |
sfan5 |
a git log can however be used as a starting point for making a changelog |
14:29 |
kilbith |
yes |
14:29 |
est |
yes |
14:30 |
sfan5 |
https://www.kernel.org/pub/software/scm/git/docs/git-log.html#_pretty_formats |
14:30 |
est |
wow we are in the eighties |
14:30 |
kilbith |
ok so it's easy to exclude all commits containing "typo" |
14:31 |
sfan5 |
that's not what i meant |
14:31 |
sfan5 |
anyway |
14:31 |
est |
thats not the point kilbith typo was only an example |
14:31 |
sfan5 |
the manpage i linked has information about making git log output data the way you want it |
14:31 |
kilbith |
you want to exclude commits that are low relevance |
14:31 |
est |
A release wont fail because nobody will volunteer to write a changelog |
14:32 |
est |
so, votes on #2818 |
14:32 |
ShadowBot |
https://github.com/minetest/minetest/issues/2818 -- Make acc and vel deprecated in add_particle and search for acceleration and velocity instead by TeTpaAka |
14:32 |
est |
? |
14:35 |
kilbith |
why querying votes for impactless cleanup... |
14:35 |
est |
so let it rot? |
14:35 |
kilbith |
direct merge |
14:36 |
kilbith |
it's just style and minor logging |
14:36 |
|
hmmmm joined #minetest-dev |
14:37 |
|
CraigyDavi joined #minetest-dev |
14:41 |
hmmmm |
Zeno`: are you taking on cleaning add_particle? |
14:41 |
est |
Also, proposals for 0.4.13? |
14:42 |
hmmmm |
that table iteration loop along with the giant strcmp elseif chain should all be getblahfield() calls |
14:42 |
|
red1 joined #minetest-dev |
14:42 |
est |
ah I see |
14:42 |
est |
yea that makes sense |
14:43 |
est |
thats what tetpakaka meant |
14:43 |
est |
ofc i support that |
14:43 |
hmmmm |
tetpakaka didn't make the original mistake |
14:43 |
est |
yes |
14:43 |
est |
but they asked whether thats needed |
14:44 |
est |
https://github.com/minetest/minetest/pull/2818#issuecomment-116590314 |
14:44 |
hmmmm |
the particle code is nothing short of terrifying |
14:44 |
hmmmm |
honestly i think we should nuke it and start over from scratch |
14:44 |
hmmmm |
jin_xi did some work on that already |
14:44 |
red1 |
how does minetest.item_place chose between minetest.item_place_node() and minetest.item_place_object() |
14:45 |
est |
good idea as long as the nuking doesnt happen in master, only the replacing |
14:50 |
|
Calinou joined #minetest-dev |
15:17 |
|
AnotherBrick joined #minetest-dev |
15:22 |
|
jin_xi joined #minetest-dev |
15:42 |
jin_xi |
yeah i did some work on particles, its here: https://github.com/obneq/minetest/tree/scenenodeparticles |
15:51 |
|
Darcidride_ joined #minetest-dev |
15:53 |
jin_xi |
also please consider #2602 it stops particles leaking an int for every expiring spawner |
15:53 |
ShadowBot |
https://github.com/minetest/minetest/issues/2602 -- move particle spawners to env by obneq |
16:20 |
|
Hunterz joined #minetest-dev |
16:48 |
|
ElectronLibre joined #minetest-dev |
17:04 |
|
rubenwardy joined #minetest-dev |
17:11 |
|
MinetestForFun joined #minetest-dev |
17:15 |
|
sloantothebone joined #minetest-dev |
17:16 |
sloantothebone |
I want to understand how the player model works. Is this core dev or may I PM with somebody about this? |
17:25 |
Taoki |
est: About that thread. I don't suggest upgrading to Lua 5.2 or 5.3 just for the blind sake of updating. My point has been primarily that old versions get deprecated. Minetest can't support Lua 5.1 forever, it's a version that will eventually get deprecated and not even distrubited by Linux distros any more. |
17:26 |
Taoki |
To be honest, I'm already worried that openSUSE 13.1 might come pack with Lua 5.3, and I'll have issues compiling Minetest. |
17:26 |
Calinou |
we can easily wait 3 years before that happens |
17:27 |
est |
then we either have to tell openSUSE package maintainers that we need lua 5.1, or you use the bundled lua |
17:27 |
est |
yet another reason to have it bundled |
17:27 |
est |
for the "distro abandon 5.1 winter" |
17:27 |
est |
cold and long |
17:27 |
Taoki |
Some distros might keep it around for longer. But not forever. |
17:28 |
est |
lua is a soft dependency |
17:28 |
est |
if there is no system lua around, we use a bundled on |
17:28 |
est |
e |
17:28 |
Taoki |
We can think of the issue oppositely as well: What if this happened some 5 years ago with Lua 4.1? Today we'd have to find an ancient version of Lua to compile Minetest, because no one even has 4.1 any more :P |
17:28 |
Taoki |
Oh? |
17:29 |
Taoki |
Wait... Lua is bundled with the Minetest code? It's not read from system packages at compile time (by cmake)? |
17:29 |
Taoki |
Like Irrlicht |
17:29 |
est |
both |
17:29 |
est |
if its found, we use that |
17:29 |
Taoki |
Aha... interesting. |
17:29 |
est |
if not we compile it |
17:29 |
Taoki |
That's indeed a bit safer |
17:30 |
est |
I wonder what other projects did |
17:30 |
est |
which are that old |
17:30 |
est |
and had similar needs |
17:31 |
est |
but admittedly, past then there was no luajit maintainer who didnt like lang features |
17:31 |
Taoki |
If Minetest can maintain its own version if Lua, I wish it could also maintain its own Luait :) |
17:31 |
Taoki |
We'd be less restricted then |
17:32 |
est |
maintaining our own language is a hard job |
17:32 |
est |
and we have much much other jobs to do |
17:32 |
est |
and far too less devs |
17:32 |
* Taoki |
nods |
17:32 |
est |
but as I said, luajit isnt abandoned |
17:32 |
est |
just no features get added |
17:34 |
Taoki |
Ah... but, can't Minetest maintain compatibility with Luajit 5.1 and normal Lua 5.2 / 5.3? I mean people can simply compile it with whichever they want. |
17:34 |
Taoki |
Or if we support any form of Lua 5.2, we'd have to break 5.1? |
17:34 |
est |
we can have ifdefs |
17:34 |
est |
I guess |
17:34 |
Taoki |
That would be best, totally |
17:34 |
est |
but question is it worth the cost |
17:35 |
est |
and second question what to recommend to distros |
17:35 |
Taoki |
I think Minetest should support compiling with every version from here on: 5.1, 5.2, 5.3, future ones. Of course, that might take work... so if someone is around who's willing to do it |
17:36 |
sloantothebone |
Hello |
17:36 |
Calinou |
Taoki, the problem is that Lua is not strictly backwards compatible; some mods might work with Lua 5.1 but not with 5.2 or 5.3, which is why we need to settle on a single version. |
17:36 |
est |
Taoki, I'm against, because it will force mod makers to make a choice which version to target |
17:36 |
Calinou |
it would be like supporting either Python 2 or Python 3 |
17:37 |
sloantothebone |
I would like to know how the core model works, you can pm me if you want |
17:37 |
Taoki |
I see |
17:37 |
Taoki |
This will be a problem yeah :( |
17:38 |
est |
So, luajit is maintained, and "traditional lua" can be marked for "debug purposes only, then your issues are addresses Taoki." |
17:38 |
est |
move the last " to the left |
17:38 |
Taoki |
Sure |
17:38 |
est |
sloantothebone, you want an overview? |
17:39 |
est |
over minetest core architecture? |
17:39 |
sloantothebone |
Yeah |
17:39 |
est |
http://dev.minetest.net/Core_Architecture |
17:39 |
est |
and this has a nice diagram http://dev.minetest.net/Engine_structure |
17:40 |
sloantothebone |
Well specifically the character model |
17:41 |
est |
you mean playerß |
17:41 |
est |
? |
17:42 |
sloantothebone |
Yes |
17:42 |
kilbith |
your question is not precise, this doesnt help to answer you |
17:44 |
|
Sokomine joined #minetest-dev |
17:44 |
sloantothebone |
I want to understand how the player model works |
17:44 |
est |
what do you mean with model? |
17:45 |
sloantothebone |
The animations, the shape of the player |
17:46 |
sloantothebone |
I believe they call the skin Sam |
17:46 |
est |
so what you want to know |
17:46 |
|
crazyR_mobile joined #minetest-dev |
17:47 |
sloantothebone |
Well, there's this mod that messes with the player model called playeranim, https://github.com/Rui914/playeranim |
17:48 |
sloantothebone |
I wanted to understand it a bit more |
17:48 |
kilbith |
talk about that on #minetest then |
17:48 |
sloantothebone |
Okay |
18:03 |
red1 |
how does minetest.item_place chose between minetest.item_place_node() and minetest.item_place_object() |
18:04 |
est |
red1, it depends on various things |
18:04 |
est |
on the item, on where you click |
18:04 |
est |
err ok not on the last one |
18:04 |
est |
only on the item |
18:05 |
est |
here is the code https://github.com/minetest/minetest/blob/990a96578f20244626b6b9f67f8e79a7e2e614ea/builtin/game/item.lua#L191 |
18:05 |
red1 |
ok thanks |
18:09 |
|
Player_2 joined #minetest-dev |
18:43 |
|
neoascetic joined #minetest-dev |
18:43 |
neoascetic |
hi all |
18:43 |
neoascetic |
can I use loadstring in my mods? I want to eval lua code dynamically |
18:53 |
sfan5 |
yes |
18:53 |
sfan5 |
at least i think you can |
18:53 |
sfan5 |
no idea whether SN's mod security patch disabled that |
18:53 |
neoascetic |
I tried but it returns nil |
19:18 |
celeron55 |
if it returns nil, there's an error message in the second return value |
19:19 |
neoascetic |
ok, I'll check |
19:28 |
|
est31 joined #minetest-dev |
19:28 |
est31 |
hmmmm, https://github.com/minetest/minetest/issues/1176#issuecomment-116782270 |
19:29 |
est31 |
I think this is an useful usecase |
19:30 |
|
H-H-H joined #minetest-dev |
19:31 |
neoascetic |
well, I have a meta as a table, how can I get inventory for this meta? |
19:32 |
neoascetic |
I am trying to get inventory of already digged node in after_node_dig callback |
19:42 |
|
CraigyDavi joined #minetest-dev |
19:47 |
kilbith |
neoascetic, you would have more modders to help you on #minetest |
20:09 |
|
johnnyjoy joined #minetest-dev |
20:11 |
hmmmm |
est31, I agree |
20:11 |
hmmmm |
I think it might work with the jitter and all |
20:11 |
hmmmm |
seems to work for the person who implemented it |
20:44 |
|
Robert_Zenz joined #minetest-dev |
21:27 |
sloantothebone |
VanessaE tells me we will have client side lua modding soon-ish |
21:50 |
|
Lunatrius joined #minetest-dev |
22:21 |
ShadowNinja |
I'm getting flooded with IBoneSceneNode::getBoneName() deprecation warnings. |
22:22 |
ShadowNinja |
"Use getName instead. This method may be removed by Irrlicht 1.9" |
22:49 |
|
gentoobro joined #minetest-dev |
23:50 |
|
Lunatrius joined #minetest-dev |