| Time |
Nick |
Message |
| 00:13 |
hmmmm |
yes, very good |
| 00:13 |
hmmmm |
that's exactly how I would've fixed it |
| 00:28 |
|
luizrpgluiz joined #minetest-dev |
| 00:30 |
|
luizrpgluiz joined #minetest-dev |
| 01:14 |
hmmmm |
https://github.com/kwolekr/minetest/commit/a02a094a2f5c3c4121b142fd53d7167140cc3b5a PTAL |
| 01:35 |
est31 |
looking |
| 01:35 |
est31 |
why is abc_t not posix compliant? |
| 01:35 |
est31 |
so you say having content_t is bad? |
| 01:36 |
hmmmm |
come to think of it, yeah it is |
| 01:36 |
hmmmm |
damn |
| 01:36 |
hmmmm |
any identifier ending with _t is reserved by posix |
| 01:36 |
est31 |
all these things should be ... documented |
| 01:37 |
hmmmm |
wow okay content_t has a problem too |
| 01:38 |
hmmmm |
alright you know what, I'm going to roll that change back to threadid_t and if it does happen to cause a name collision on some supported platform, then we'll have a reason to change it |
| 01:38 |
est31 |
fine |
| 01:38 |
hmmmm |
http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html |
| 01:38 |
hmmmm |
read this |
| 01:39 |
est31 |
oh |
| 01:39 |
est31 |
CPÅžP11? |
| 01:40 |
hmmmm |
what is that character |
| 01:40 |
est31 |
its in your patch |
| 01:40 |
hmmmm |
ermm |
| 01:40 |
est31 |
ive thought its dirt on my monitor |
| 01:40 |
est31 |
then I've scrolled and the dirt moved |
| 01:40 |
hmmmm |
oh you mean CPP11 |
| 01:40 |
est31 |
https://github.com/kwolekr/minetest/commit/a02a094a2f5c3c4121b142fd53d7167140cc3b5a#diff-92729a668babc433abcbe4987f8e14e6R71 |
| 01:40 |
hmmmm |
whaat |
| 01:41 |
hmmmm |
the fuck |
| 01:42 |
est31 |
also I wonder... do we have c++11 threads right now, or not? |
| 01:42 |
hmmmm |
I would imagine freeminer would use that mode |
| 01:42 |
est31 |
bc ShadowNinja's patch had them at the start |
| 01:42 |
est31 |
but it was dropped until it got merged, no? |
| 01:42 |
hmmmm |
they're optionally supported only if the cpp version is high enough |
| 01:43 |
hmmmm |
yeah okay this is crazy |
| 01:43 |
hmmmm |
I really have no idea at all how that character got there |
| 01:45 |
hmmmm |
anyway I think we should document our conscious decision to ignore POSIX reserved name rules |
| 01:46 |
est31 |
either of those, but documenting is never bad |
| 01:46 |
hmmmm |
removing __ and _ prefixed names is fine and all because that could cause a bigger problem and they're not already ubiquitous throughout the code |
| 01:46 |
hmmmm |
and it's an ISO C language violation |
| 01:46 |
est31 |
yeah _something looks ugly as well |
| 01:46 |
est31 |
smells of snakes |
| 01:46 |
est31 |
duck typed snakes |
| 01:46 |
hmmmm |
this on the other hand is a POSIX violation and doesn't actually make a difference unless just by chance some new revision adds it |
| 01:46 |
hmmmm |
at which point we could simply... change the name |
| 01:47 |
hmmmm |
where should this be documented? |
| 01:47 |
est31 |
http://dev.minetest.net/Code_style_guidelines ? |
| 01:48 |
hmmmm |
this doesn't quite have to do with code style |
| 01:48 |
hmmmm |
more like "project design decisions/agreements" |
| 01:48 |
est31 |
there should be some place however where it can be added |
| 01:49 |
hmmmm |
yeah the POSIX name restrictions are way too broad. for example, any identifier starting with "ENet" is invalid |
| 01:49 |
est31 |
I really doubt it needs a new wiki page |
| 01:49 |
est31 |
well if you implement them, you are on the safe side |
| 01:49 |
hmmmm |
and even the major GNU project libgmp uses mpz_t |
| 01:49 |
est31 |
if you don't you are on the fun sid |
| 01:49 |
est31 |
e |
| 01:49 |
est31 |
yea |
| 01:49 |
hmmmm |
if such a big project ignores it then that kind of sets a precedent |
| 01:50 |
est31 |
all gnu libraries I've seen have someting_t |
| 01:53 |
est31 |
there we have the real reason why GNU isn't certified UNIX |
| 01:53 |
hmmmm |
another violation is our handling of pthread_t |
| 01:53 |
hmmmm |
you cannot compare a pthread_t using ==, you must use pthread_equal() |
| 01:54 |
hmmmm |
but the problem is that std::map in debug.cpp |
| 01:54 |
est31 |
your patch fixes it doesnt it? |
| 01:54 |
hmmmm |
if you override the comparator for that map to use pthread_equal(), it's not going to be well-ordered because you can't compare "greater than" between two pthread_ts |
| 01:54 |
est31 |
ah there is an std::map? |
| 01:55 |
hmmmm |
so you need to implement something to make pthread_ts arbitrarily well-ordered |
| 01:55 |
est31 |
yeah |
| 01:55 |
est31 |
injection into well ordered se |
| 01:55 |
est31 |
t |
| 01:55 |
hmmmm |
I have no good ideas on how to do that |
| 01:56 |
hmmmm |
in any case, it only matters on platforms where pthread_t is a struct |
| 01:56 |
est31 |
what exactly does the map do? |
| 01:56 |
hmmmm |
something about debugstacks |
| 01:58 |
hmmmm |
for what it's worth, gdb maps pthread_ts to an arbitrary integer ordinal so it doesn't have these problems |
| 01:58 |
hmmmm |
sorta wondering if we should do the same |
| 01:59 |
hmmmm |
or maybe it's really too much work for something that's a non-issue on our supported platforms |
| 01:59 |
est31 |
perhaps let the preprocesor issue a warning if its not an integral type? |
| 02:00 |
hmmmm |
for what it's worth, according to the spec, pthread_t could be an ordinal and comparison would still cause problems |
| 02:00 |
hmmmm |
imagine the case where pthread_equal is implemented as thr1->kernel_thread_id == thr2->kernel_thread_id and the other members are like uhh... no idea |
| 02:01 |
hmmmm |
some implementation dependent sutff |
| 02:01 |
hmmmm |
but the point is that they could be different /pointers/ with equivalent threads |
| 02:01 |
hmmmm |
subtle breakage |
| 02:01 |
est31 |
yeah |
| 02:02 |
est31 |
thats the problem with too lose standards |
| 02:02 |
hmmmm |
FWIW, google chrome has their Chromium Base Library which implements a thread class just like our own |
| 02:02 |
hmmmm |
it completely ignores the "problems" behind pthread_t |
| 02:02 |
hmmmm |
is that a good enough precedent to follow, would you say? |
| 02:03 |
est31 |
well, that means we would at least run at all platforms chromium runs at |
| 02:03 |
|
luizrpgluiz left #minetest-dev |
| 02:03 |
hmmmm |
the thing is |
| 02:03 |
est31 |
majority of the devices out there |
| 02:04 |
est31 |
idc whether minetest runs on some exotic HP workstation |
| 02:04 |
hmmmm |
because of all this broken dependency on pthread_t being a comparable ordinal number, the effective standard has been changed |
| 02:04 |
hmmmm |
nobody in their right minds would not make pthread_t a struct due to the amount of breakage |
| 02:04 |
hmmmm |
s/would not/would/ |
| 02:05 |
est31 |
well, if the standard creators were smart, they'd have added a pthread_get_id() function |
| 02:05 |
hmmmm |
I have an HP Visualize B1000 with HP-UX 11.11u, want me to test minetest compatibility with that? :) |
| 02:05 |
hmmmm |
the thing is, pthread_t is *supposed* to be the thread ID |
| 02:05 |
est31 |
well, then the standard shouldnt make it opaque |
| 02:06 |
hmmmm |
yeah the standard is dumb imho |
| 02:06 |
est31 |
I mean that pthread_get_id() function could just return the passed argument on most platforms |
| 02:07 |
est31 |
and for your example it could return thr->kernel_thread_id |
| 02:07 |
est31 |
done |
| 02:15 |
hmmmm |
what's done? |
| 02:21 |
hmmmm |
https://github.com/kwolekr/minetest/commit/6be74d17df75714066b36cfa6ae40081526ef477 |
| 02:30 |
est31 |
looks good |
| 03:48 |
hmmmm |
https://github.com/kwolekr/minetest/commit/765a834cd04473afeb4b86b445dee901e0d0c83c PTAL |
| 04:11 |
kahrl |
heh, even the gnu libstdc++ devs are having issues with pthread_t: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67114#c4 |
| 04:22 |
|
shadowzone joined #minetest-dev |
| 04:48 |
ShadowNinja |
hmmmm: ... I just started that a few minutes before your message... |
| 04:49 |
ShadowNinja |
Why the m_ for private vars though? Then you have to rename itif you make it public/protected. |
| 04:51 |
hmmmm |
code rules say that private/protected need to have the m_ prefix |
| 04:52 |
hmmmm |
if you make it public/protected, you might need to rethink your encapsulation |
| 04:56 |
|
paramat joined #minetest-dev |
| 04:59 |
ShadowNinja |
Hrm, name should probably be private, I wonder why it isn't. |
| 05:00 |
hmmmm |
probably because threads won't be able to set it outside of an initializer list |
| 05:00 |
hmmmm |
i don't think it really matters that much |
| 05:01 |
ShadowNinja |
setName(); |
| 05:02 |
hmmmm |
you know what, you're right |
| 05:02 |
hmmmm |
this makes no sense the way it is |
| 05:02 |
ShadowNinja |
Er, no, that doesn't update the var.. |
| 05:03 |
hmmmm |
ahh |
| 05:03 |
ShadowNinja |
I'll fix that. |
| 05:03 |
hmmmm |
then you'd need to make it a non-static variable |
| 05:03 |
hmmmm |
:).... |
| 05:04 |
ShadowNinja |
My patch merges threads.h into thread.h instead of keeping them oddly seperate. |
| 05:04 |
hmmmm |
whose patch are we using then? |
| 05:04 |
ShadowNinja |
I also removed the include from porting.h, since itisn't actually used there. |
| 05:05 |
ShadowNinja |
Eh, mine? I'm adding in your changes now. |
| 05:05 |
hmmmm |
I'd rather not duplicate effort |
| 05:05 |
hmmmm |
would you rather base yours off of mine? |
| 05:05 |
ShadowNinja |
Moment, I'll give you my patch so you can see what I'm doing. |
| 05:05 |
ShadowNinja |
Yes. |
| 05:05 |
hmmmm |
alright, I'll push what's currently there, then |
| 05:06 |
VanessaE |
can someone please address the shadow bug in mgv7 w/moretrees? |
| 05:06 |
hmmmm |
plate's full |
| 05:07 |
ShadowNinja |
This is what I've got so far: http://ix.io/ls8/diff\ |
| 05:07 |
ShadowNinja |
hmmmm: er. |
| 05:07 |
ShadowNinja |
I mean I'd merge your changes into mine manually, rebasing it would probably be harder. |
| 05:08 |
hmmmm |
let me think about this |
| 05:08 |
hmmmm |
I don't like defining a type as a member of a class like that |
| 05:08 |
hmmmm |
Thread::Id |
| 05:08 |
paramat |
Vanessa is it perhaps due to very tall trees reaching y = 47? maybe when the chunk above has not been generated yet? |
| 05:08 |
hmmmm |
I know it "makes sense" from an organizational point of view, but can't we just leave well enough alone? :/ |
| 05:09 |
VanessaE |
paramat: doubt it, even some of the shorter trees spawning at sea level (say, a palm tree on a beach) do it. |
| 05:09 |
VanessaE |
it's probably the chunk-above part, but not the Y>47m part. |
| 05:10 |
ShadowNinja |
hmmmm: I'm also O.K. with ThreadId, but I don't like threadid_t. |
| 05:10 |
hmmmm |
why not? |
| 05:10 |
ShadowNinja |
It doesn't use the PascalCase type name convention. |
| 05:10 |
paramat |
okay |
| 05:10 |
hmmmm |
so?? |
| 05:11 |
hmmmm |
PascalCase is for classes |
| 05:11 |
hmmmm |
not necessarily types |
| 05:11 |
ShadowNinja |
hmmmm: So I don't like it :-P |
| 05:11 |
hmmmm |
just my personal opinion, I think you're going a little too crazy with the refactoring |
| 05:11 |
hmmmm |
would be better to focus on bug fixes/features/etc. |
| 05:12 |
hmmmm |
or documentation updates |
| 05:12 |
hmmmm |
like these are the things that totally don't matter but break a lot of pull requests and add merge conflicts |
| 05:12 |
hmmmm |
the reason why I did that threading refactor was because I needed it for my envlock PR |
| 05:14 |
hmmmm |
ShadowNinja: but the main point is that I originally changed threadid_t to ThreadId, just like you said, but I went back on that decision because it'd cause more inconsistency for very little benefit |
| 05:17 |
ShadowNinja |
hmmmm: How was it more inconsistent? |
| 05:17 |
hmmmm |
because then we have all the other custom types that end with _t |
| 05:17 |
hmmmm |
there's content_t, and I'm sure there are others that I can't think of at the moment |
| 05:17 |
hmmmm |
you're not really going to do a global find+replace on content_t, are you....? |
| 05:18 |
hmmmm |
like that's a little bit too ridic |
| 05:18 |
hmmmm |
how is that helping minetest other than breaking everybody's PRs |
| 05:21 |
ShadowNinja |
hmmmm: content_t may be hard to change, but this is easy, and it's more consistent with how the standard library does it (in C++11). |
| 05:22 |
hmmmm |
who said that being more C++y is better though |
| 05:22 |
hmmmm |
this sort of thing is something we should get consensus on first before you do it i think |
| 05:29 |
ShadowNinja |
hmmmm: Why'd you change the thread priority enum to a list of constants? |
| 05:29 |
hmmmm |
because anonymous enums are dumb |
| 05:30 |
hmmmm |
on windows, those constants are defines also |
| 05:30 |
ShadowNinja |
Why are they dumb? |
| 05:30 |
hmmmm |
because they have no advantages whatsoever |
| 05:30 |
ShadowNinja |
And why clib -> lib.h? |
| 05:31 |
hmmmm |
because lib.h is more universal |
| 05:31 |
hmmmm |
are there any reasons for those changes at all to begin with...? |
| 05:31 |
ShadowNinja |
The enum syntax is nicer and the clib versions are rewuired by the standard. |
| 05:32 |
hmmmm |
why is enum syntax nicer? you use them in the same exact way |
| 05:32 |
hmmmm |
and you don't get to define their type |
| 05:32 |
hmmmm |
with a define, if you want something to be a specific type, you just add a cast to the macro definition |
| 05:33 |
hmmmm |
it just so happens that on Windows that parameter is an int, so it works fine without any implicit conversions |
| 05:34 |
hmmmm |
what if there's code that expects those constants to be macros? |
| 05:34 |
ShadowNinja |
The syntax is nicer because the "#define " and value isn't necessary. Also, you changed a comment from "// For..." to "// for...". The original was correct. |
| 05:34 |
hmmmm |
capitalizing a letter? |
| 05:34 |
hmmmm |
that's not a sentence |
| 05:35 |
hmmmm |
all these miniscule autistic details that don't really need to be changed get changed and detract from the actual changes |
| 05:35 |
ShadowNinja |
Yes, it's supposed to be capitalized. And it is a sentence, there's an implicit "This is " before it. |
| 05:36 |
ShadowNinja |
hmmmm: But you made these changes... |
| 05:36 |
hmmmm |
you made them first |
| 05:36 |
hmmmm |
then how come there's no period then? |
| 05:36 |
hmmmm |
jeez just leave those things the way they are |
| 05:44 |
ShadowNinja |
hmmmm: You also switched from _beginthreadex to CreateThread. CreateThread doesn't set up the runtime in the new thread. |
| 05:45 |
ShadowNinja |
http://stackoverflow.com/questions/331536/windows-threading-beginthread-vs-beginthreadex-vs-createthread-c |
| 05:47 |
hmmmm |
I don't think _beginthreadex does anything different other than sets up TLS |
| 05:47 |
hmmmm |
we don't use TLS. |
| 05:51 |
hmmmm |
in fact it doesn't even do that anymore, according to a comment in that very webpage you posted: http://stackoverflow.com/a/20901790/4751863 |
| 05:58 |
hmmmm |
oh I remember why I changed the thread priority values back to defines |
| 05:58 |
hmmmm |
it's because they're fundamentally not an enum, the way I had it set up those were arithmetic values that just happened to be sequential in value |
| 05:58 |
hmmmm |
i do arithmetic on them |
| 06:26 |
paramat |
hmmmm do you approve of #3248 as it is? i've rebased and renamed the field to "catch_up" |
| 06:26 |
ShadowBot |
https://github.com/minetest/minetest/issues/3248 -- ABMs: Make catch-up behaviour optional by paramat |
| 06:27 |
hmmmm |
lmao |
| 06:27 |
hmmmm |
getting tired of ketchup jokes huh |
| 06:28 |
VanessaE |
heh |
| 06:28 |
hmmmm |
erm, yeah, +1 from me, looks good. |
| 06:29 |
paramat |
hehe thanks |
| 06:29 |
ShadowNinja |
hmmmm: You call cleanup on thread start, which clears the thread name before the OS ever learns about it. |
| 06:30 |
ShadowNinja |
And apparently you've already merged it. |
| 06:30 |
hmmmm |
whoops |
| 06:32 |
hmmmm |
you can't put cleanup() at the end of wait(), because there's nothing saying the user absolutely needs to wait after stopping |
| 06:33 |
hmmmm |
after wait() is when the user would call getReturnValue() and do whatever operation is needed |
| 06:33 |
ShadowNinja |
If you need to clear stuff it should brobably be done by the thread itself. |
| 06:33 |
hmmmm |
so it really does need to get put at the beginning of start() |
| 06:34 |
ShadowNinja |
name never needs to be cleared though/ |
| 06:34 |
hmmmm |
erm, I don't think that works for C++11 threads |
| 06:34 |
hmmmm |
okay, so just take the name clearing out |
| 06:34 |
hmmmm |
that fixes everything |
| 06:35 |
hmmmm |
also add a cleanup() after the wait() in the if (!m_running) { claus in thread::kill |
| 06:37 |
hmmmm |
paramat, look at this: https://github.com/kwolekr/minetest/commit/ae4e9cc71262fef154cee6c35539638780961796 |
| 06:38 |
* paramat |
looks |
| 06:38 |
paramat |
oooh |
| 06:38 |
hmmmm |
it's not done yet but the basic idea is to acquire a VManip somehow |
| 06:38 |
hmmmm |
run core.envlock_release() |
| 06:38 |
hmmmm |
do your mapgen |
| 06:38 |
hmmmm |
then run core.envlock_acquire() |
| 06:38 |
hmmmm |
blit the vmanip back to the map |
| 06:39 |
hmmmm |
comments/concerns with the way it's done? |
| 06:40 |
hmmmm |
VanessaE? |
| 06:41 |
hmmmm |
though this one wouldn't be as pertinent to you since you use all set_node() |
| 06:41 |
paramat |
so the lock can be released to run the heavy processing part of a lua mapgen threaded? |
| 06:41 |
VanessaE |
your basic idea seems reasonable anyway |
| 06:41 |
hmmmm |
right |
| 06:41 |
hmmmm |
and you can also use Lua Lanes to have a lua multithreaded mapgen, for what it's worth |
| 06:41 |
hmmmm |
lol that's gonna be ridic' |
| 06:41 |
paramat |
nice because most of the processing is working on the nodes in the lvm |
| 06:42 |
* VanessaE |
shudders |
| 06:42 |
paramat |
good to see this going ahead |
| 06:42 |
hmmmm |
but how's the interface |
| 06:42 |
hmmmm |
are you missing anything from it, or do you not want the functions to throw errors? |
| 06:42 |
hmmmm |
etc |
| 06:43 |
paramat |
seems okay, nice and simple |
| 06:43 |
|
nrzkt joined #minetest-dev |
| 06:44 |
paramat |
throwing errors is probably a good thing for this |
| 06:45 |
paramat |
.. because it's dangerous |
| 06:48 |
hmmmm |
this is gonna be fun when i split map locking into mapblock areas |
| 06:49 |
hmmmm |
core.request_area({MinEdge={...}, MaxEdge={...}}) |
| 06:49 |
hmmmm |
blocks until there are no locks overlapping with the requested area |
| 06:49 |
hmmmm |
still need to work out the details but what i fear is that this is going to take too many locks |
| 06:50 |
paramat |
8. |
| 06:50 |
hmmmm |
no definitely more than that |
| 06:50 |
hmmmm |
i need to do research on how "heavy" futexes are on our target platforms |
| 06:50 |
hmmmm |
or maybe come up with my own synchronization primitive altogether if necessary |
| 06:50 |
|
Hunterz joined #minetest-dev |
| 06:51 |
hmmmm |
might have to use spinlocks instead if it's too much |
| 06:51 |
hmmmm |
which sort of defeats the purpose |
| 06:52 |
nrzkt |
hmmmm, did you tried mutex perf mapsector first ? |
| 06:52 |
hmmmm |
no |
| 06:59 |
ShadowNinja |
hmmmm: On my computer I can do 39000 lock/unlock pairs per milisecond. (minetest --speedtests) |
| 07:03 |
ShadowNinja |
Actually locking the mutex should take almost no time, the issue is contention. |
| 07:03 |
hmmmm |
what i'm concerned about is if initializing a mutex does anything in kernel mode |
| 07:06 |
ShadowNinja |
Moving the Mutex into the loop brings it down to 29000/ms. |
| 07:08 |
ShadowNinja |
I'm not sure how expensive a syscall is, but the speed seems more than adequate. |
| 07:09 |
ShadowNinja |
Of course, this is Linux 4.x with recent libraries, other OSes may do much worse. |
| 07:17 |
hmmmm |
alright i just checked |
| 07:17 |
hmmmm |
on Windows it does create an event object |
| 07:22 |
hmmmm |
i think i'd rather come up with a new form of synchronization that's actually designed for this type of task |
| 07:28 |
hmmmm |
what i'm thinking of is somehow blocking on a data structure (let's start out with iterating over a list...) until there are no intersections with your requested area |
| 07:28 |
hmmmm |
could do this with events |
| 07:28 |
hmmmm |
but then i'd be waking up every single time a maplock is released |
| 07:29 |
hmmmm |
hell of a lot better than having a kernel mode event object for every single mapblock |
| 07:30 |
hmmmm |
okay this will work, and the naive approach would still work (but not very well) because it'd need to loop over a volume of mapblocks and block on each waiting to acquire |
| 07:31 |
hmmmm |
if I write this, nobody is going to bother to try improving it |
| 07:32 |
hmmmm |
I have a reason to use est's areastore :-) |
| 08:03 |
|
paramat joined #minetest-dev |
| 08:10 |
ShadowNinja |
https://github.com/ShadowNinja/minetest/commit/5b1c01126e026539a5bea2eebc63af85be38becd |
| 08:10 |
ShadowNinja |
G'night folks. |
| 08:18 |
paramat |
will merge #3248 when checks are done |
| 08:18 |
ShadowBot |
https://github.com/minetest/minetest/issues/3248 -- ABMs: Make catch-up behaviour optional by paramat |
| 08:30 |
paramat |
uh the windows bulds failed, something to do with thread.cpp |
| 08:32 |
paramat |
minetest/src/threading/thread.cpp:170:10: error: expected initializer before '==' token |
| 08:36 |
paramat |
that line was altered by hmmmm's recent commit |
| 08:36 |
paramat |
i'll wait for his return then |
| 08:39 |
paramat |
now merging game#705 |
| 08:39 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/705 -- Default/trees: Add requirement of light level 13 for sapling growth by paramat |
| 08:40 |
VanessaE |
wait |
| 08:40 |
VanessaE |
what's the light level for a torch? |
| 08:40 |
VanessaE |
(if placed right next to the sapling) |
| 08:41 |
VanessaE |
oh hell |
| 08:41 |
VanessaE |
you already addressed that. |
| 08:41 |
VanessaE |
paramat: frankly, I'd have to veto that. |
| 08:42 |
paramat |
oh sorry, torches are not bright enough |
| 08:42 |
paramat |
but could be made level 14 |
| 08:42 |
VanessaE |
minetest's lighting system needs revamped first, imho |
| 08:42 |
VanessaE |
that's just the problem |
| 08:43 |
paramat |
you have a need to grow saplings by torchlight? |
| 08:43 |
VanessaE |
a torch should be perhaps even dimmer than it is now, but then a bright source like a mese lamp should be FAR brighter than it is (I mean how far it throws the light, too) |
| 08:43 |
VanessaE |
actually I do that sometimes, if I'm in a hurry to get a sapling to grow. |
| 08:43 |
VanessaE |
if anything, you should vary the grow time based on light level |
| 08:43 |
VanessaE |
rather than just grow-or-don't |
| 08:44 |
paramat |
we could consider making torches level 14, although that erases the difference between torches and bright lamps |
| 08:46 |
VanessaE |
if consistency is the issue, |
| 08:46 |
VanessaE |
wouldn't it be better to lower the light requirement for the other plants (as pilz alludes to)? |
| 08:46 |
VanessaE |
and make it take longer to grow if the light is too low |
| 08:47 |
VanessaE |
I do something like this with bushes_classic -- if they're planted on farming soil, they regrow their fruits faster than on plain dirt/grass. |
| 08:48 |
VanessaE |
https://github.com/VanessaE/plantlife_modpack/blob/master/bushes_classic/nodes.lua#L123 |
| 08:48 |
paramat |
perhaps open an issue about lowering the threshold for all plants. but it seems right to me that torches should never be bright enough to grow a plant |
| 08:48 |
VanessaE |
why shouldn't they? |
| 08:48 |
paramat |
it'll inconvenience some players true but tough :) |
| 08:49 |
paramat |
because they're torches |
| 08:49 |
VanessaE |
so? :) |
| 08:49 |
VanessaE |
a dim light still grows things, they just grow less. |
| 08:50 |
paramat |
nah a dim light should never grow anything in any timescale |
| 08:50 |
paramat |
think of hydroponics grow lights, you'll just have to use meselamps or mod lamps instead |
| 08:51 |
* VanessaE |
shrugs |
| 08:51 |
VanessaE |
now what happens if the light isn't right next to the object? |
| 08:51 |
paramat |
anyway see what the other devs think |
| 08:51 |
VanessaE |
doesn't a light source of '14' produce 13-and-below in the neighboring nodes? |
| 08:52 |
paramat |
yeah, the lamp needs to be immediately beside the plant |
| 08:52 |
paramat |
just as with wheat, cotton |
| 08:52 |
paramat |
diagonally-neighbouring doesn't work |
| 08:53 |
VanessaE |
that also means now it's impossible to create a hydroponics mod |
| 08:53 |
VanessaE |
if the resultant plants are more than 1 node tall |
| 08:54 |
VanessaE |
a mese lamp or other grow light of equal brightness, suspended with 2 meters of air space between it and the ground is going to give the sapling/seedling on that ground a light level of 12 |
| 08:54 |
paramat |
well my pr is only for saplings, mod plants could have a lower threshold |
| 08:55 |
paramat |
yeah falloff of 1 per node |
| 08:55 |
paramat |
https://forum.minetest.net/viewtopic.php?p=194951#p194951 |
| 08:56 |
paramat |
each lamp can grow 4 plants around it |
| 08:56 |
VanessaE |
sorry to say, but I hate that behavior |
| 08:56 |
VanessaE |
it's too crowded |
| 08:57 |
paramat |
then it's worth suggesting a lower threshold for all plants |
| 08:57 |
VanessaE |
I just did :) |
| 08:57 |
paramat |
hehe |
| 08:59 |
VanessaE |
light sources only being able to spread 14 meters or so, and barely lighting up a scene, is a real problem |
| 09:00 |
VanessaE |
I've got a 60W (equivalent) CFL bulb lighting up my computer room. In minetest, this same room looks about half as bright |
| 09:00 |
VanessaE |
(I have my house modeled in minetest) |
| 09:03 |
paramat |
personally i might approve of a plant threshold of 12, but only if torches are reduced by 1 so they can't be used as grow lamps |
| 09:06 |
paramat |
but dimmer torches may be unpopular. so i think things are ok as they are |
| 09:30 |
|
Calinou joined #minetest-dev |
| 09:35 |
|
Krock joined #minetest-dev |
| 09:44 |
|
paramat left #minetest-dev |
| 09:55 |
|
Darcidride joined #minetest-dev |
| 11:01 |
|
CraigyDavi joined #minetest-dev |
| 11:06 |
|
PilzAdam joined #minetest-dev |
| 11:23 |
|
H-H-H joined #minetest-dev |
| 11:52 |
|
technics joined #minetest-dev |
| 12:38 |
|
julienrat joined #minetest-dev |
| 12:55 |
|
Darcidride joined #minetest-dev |
| 12:58 |
|
waressearcher2 left #minetest-dev |
| 13:15 |
|
Player2 joined #minetest-dev |
| 13:33 |
|
zupoman joined #minetest-dev |
| 14:13 |
|
luizrpgluiz joined #minetest-dev |
| 14:30 |
|
jin_xi joined #minetest-dev |
| 14:44 |
|
younishd joined #minetest-dev |
| 14:55 |
|
Warr1024 joined #minetest-dev |
| 14:56 |
|
luizrpgluiz left #minetest-dev |
| 15:16 |
|
leat1 joined #minetest-dev |
| 15:27 |
|
leat1 joined #minetest-dev |
| 15:30 |
|
nm0i joined #minetest-dev |
| 15:32 |
nm0i |
Morning |
| 15:32 |
nm0i |
Is set_timeofday only way to contol brightness of sunlight? |
| 15:33 |
Calinou |
yes, nm0i. |
| 15:33 |
Calinou |
you can't change sun color server-side. |
| 15:36 |
nm0i |
Thanks. Just making darker storms... |
| 15:46 |
|
Darcidride joined #minetest-dev |
| 15:50 |
|
zat joined #minetest-dev |
| 15:54 |
Krock |
Haxx the clinent |
| 16:07 |
|
julienrat joined #minetest-dev |
| 16:08 |
|
julienrat left #minetest-dev |
| 16:12 |
|
paramat joined #minetest-dev |
| 16:13 |
paramat |
can anyone +1 #3264 ? all builds fail due to this |
| 16:13 |
ShadowBot |
https://github.com/minetest/minetest/issues/3264 -- Fix == to = by Rui914 |
| 16:15 |
Krock |
+1 |
| 16:15 |
Krock |
> anyone |
| 16:15 |
paramat |
heh |
| 16:16 |
paramat |
well it's trivial i'll merge it |
| 16:19 |
paramat |
now merging 3264 |
| 16:24 |
paramat |
done |
| 16:41 |
|
hmmmm joined #minetest-dev |
| 16:59 |
paramat |
#3265 |
| 16:59 |
ShadowBot |
https://github.com/minetest/minetest/issues/3265 -- findSpawnPos: Allow spawn up to 16 nodes above water level by paramat |
| 17:06 |
|
paramat left #minetest-dev |
| 17:14 |
|
Gael-de-Sailly joined #minetest-dev |
| 17:15 |
|
VirusJones joined #minetest-dev |
| 17:37 |
|
Darcidride joined #minetest-dev |
| 17:46 |
|
nore joined #minetest-dev |
| 18:08 |
|
leat2 joined #minetest-dev |
| 18:20 |
|
leat2 joined #minetest-dev |
| 18:24 |
OldCoder |
Which MT release added local map saving to the core? |
| 18:27 |
PilzAdam |
OldCoder, 0.4.11 |
| 18:27 |
OldCoder |
PilzAdam, thank you. It is kind of you to respond. |
| 18:27 |
PilzAdam |
see http://dev.minetest.net/Changelog |
| 18:27 |
OldCoder |
Very well. FYI this is to facilitate tweaks to RedCrab which is now rescued. |
| 18:30 |
|
est31 joined #minetest-dev |
| 18:39 |
PilzAdam |
est31, should #3258 also replace minetest.conf.example with the generated one? it would look like this: https://gist.github.com/PilzAdam/3503a574bf3277078e05 |
| 18:39 |
ShadowBot |
https://github.com/minetest/minetest/issues/3258 -- New Lua main menu settings by PilzAdam |
| 18:41 |
est31 |
I'm generally not sure how we should manage that. |
| 18:41 |
est31 |
if minetest.conf.example is autogenerated, should we keep it in git tracking? |
| 18:42 |
est31 |
if yes, when and how should it updated |
| 18:42 |
hmmmm |
08:30 paramat uh the windows bulds failed, something to do with thread.cpp |
| 18:42 |
hmmmm |
WTF, I ran it on Jenkins |
| 18:42 |
est31 |
if no, same question |
| 18:42 |
hmmmm |
precisely so this does not happen |
| 18:43 |
PilzAdam |
est31, same handling as updating translation files |
| 18:43 |
hmmmm |
damn, int ret == WaitForSingleObject(... |
| 18:43 |
PilzAdam |
it should be done in feature freeze before release, so translators have time to translate it |
| 18:44 |
est31 |
hrmm, I run it every two months |
| 18:45 |
hmmmm |
08:59 VanessaE light sources only being able to spread 14 meters or so, and barely lighting up a scene, is a real problem |
| 18:45 |
hmmmm |
this is literally because of the number of bits |
| 18:45 |
hmmmm |
:( |
| 18:45 |
PilzAdam |
est31, auto-generating it, for example every startup, is not possible, since some distros may keep their doc folder in weird / non-writeable places |
| 18:45 |
est31 |
well, it is advantageous hmmmm as well |
| 18:45 |
hmmmm |
when I get rid of that asinine day/light bank thing we can have light from light sources expanding out to 256 meters |
| 18:45 |
est31 |
bc we dont have tons of lightning updates |
| 18:45 |
est31 |
only kilos :) |
| 18:46 |
hmmmm |
yeah true |
| 18:46 |
hmmmm |
I don't know man there's too many things to work on |
| 18:46 |
hmmmm |
gotta take it one at a time |
| 18:46 |
hmmmm |
I am really psyched about the map region locking mechanism I came up with last night and it seems it'd solve practically all of our problems |
| 18:47 |
est31 |
PilzAdam, perhaps it should give a way to do it over console, or at least with removing comments from some parts of the settings tab file? |
| 18:48 |
est31 |
hmmmm, tell us |
| 18:49 |
PilzAdam |
est31, https://github.com/PilzAdam/minetest/blob/lua_settings/builtin/mainmenu/tab_settings.lua#L484-L498 |
| 18:49 |
hmmmm |
I described the basics in the logs, don't have any of the details of synchronization written out yet |
| 18:49 |
hmmmm |
but basically each wait object will require a semaphore |
| 18:49 |
hmmmm |
there's two lists, one of regions currently locked, and then the second of regions currently waiting to get locked |
| 18:50 |
hmmmm |
a region lock is acquired by acquiring the region list lock and then using whatever spacial data structure to determine if any regions intersect with the requested region |
| 18:51 |
hmmmm |
if so, then the requested region gets added to the pending lock list along with a pointer to its semaphore structure |
| 18:51 |
hmmmm |
if not, it just adds its region to the locked region list |
| 18:51 |
hmmmm |
when a region is released, it checks the pending region list and if the area it's releasing overlaps with anything pending, it'll trigger the event in the list |
| 18:52 |
hmmmm |
the other thread then wakes up and rescans to see if it is able to lock |
| 18:52 |
hmmmm |
if so it acquires the lock and begins execution on that region |
| 18:52 |
hmmmm |
of course there are some details that need to be worked out |
| 18:53 |
est31 |
you write you want to use areastore, thats great |
| 18:53 |
hmmmm |
of course, but first I'm going to keep it simple and use a linear list for the proof of concept :-) |
| 18:53 |
hmmmm |
that enhancement can be added later on once this is a proven technology |
| 18:54 |
est31 |
okay |
| 18:54 |
hmmmm |
we can roll this out little by little by emulating "envlock" as it is right now by acquiring the entire map as the region |
| 18:54 |
hmmmm |
and then make small changes to restrict locks to the specific region they're actually checking or modifying |
| 18:54 |
hmmmm |
by the time we're done, nothing will use the global map lock any longer |
| 18:55 |
PilzAdam |
kahrl, would you be ok with merging #3258 now? the aggregated settings view can be done later, but it would need to be redone anyway |
| 18:55 |
ShadowBot |
https://github.com/minetest/minetest/issues/3258 -- New Lua main menu settings by PilzAdam |
| 18:56 |
est31 |
perhaps the settings_translation_file can be generated as well? |
| 18:59 |
PilzAdam |
est31, and put it in po/, next to minetest.pot? |
| 18:59 |
PilzAdam |
sounds good |
| 18:59 |
PilzAdam |
I'll modify the script, too |
| 19:01 |
est31 |
it should contain a comment explaining that its autogenerated |
| 19:01 |
PilzAdam |
yep |
| 19:16 |
kahrl |
PilzAdam, allow me to do some bikeshedding |
| 19:16 |
kahrl |
the white-on-black gives me the impression that the settings are very technical (like in a terminal) |
| 19:17 |
kahrl |
I think making the background transparent would reduce that feeling: https://gist.github.com/kahrl/73545042400dd226c831 |
| 19:19 |
kahrl |
For the boolean settings, I think double-clicking them or pressing enter should simply toggle them, not display the edit page |
| 19:20 |
kahrl |
(the edit button should still get you to the edit page, so that you can see the description if you want) |
| 19:26 |
PilzAdam |
kahrl, done |
| 19:27 |
PilzAdam |
"no rule to make target `../po/settings_translation_file.c/minetest.po'" what? |
| 19:27 |
est31 |
that toggle thing can be seen to be against least suprise |
| 19:27 |
PilzAdam |
:-/ |
| 19:27 |
est31 |
hrmm, perhaps it should not be put there... |
| 19:27 |
est31 |
src? |
| 19:28 |
PilzAdam |
misc? |
| 19:28 |
est31 |
updatepo.sh only checks src/ and builtin/ |
| 19:28 |
PilzAdam |
est31, I already thought earlier about a fast way to toggle booleans; I would say it's quite intuitive |
| 19:29 |
kahrl |
est31: honestly I was confused at first when it opened an extra dialog for a boolean |
| 19:29 |
kahrl |
but I can see what you mean |
| 19:29 |
PilzAdam |
est31, I'll put it in src/ |
| 19:32 |
kahrl |
from a functionality perspective I think the PR can be merged now (once the translation file stuff is dealt with) |
| 19:32 |
kahrl |
I haven't reviewed the code, should I? |
| 19:32 |
PilzAdam |
no, better don't look at it ;-) |
| 19:32 |
kahrl |
hehe |
| 19:32 |
PilzAdam |
est31 already looked at it |
| 19:33 |
kahrl |
yeah I was mostly asking est31 whether he wanted someone else to look at it as well |
| 19:34 |
est31 |
kahrl, if you want, look at it, then you can be blamed as well when a bug gets discovered :) |
| 19:35 |
est31 |
when not if :p |
| 19:35 |
PilzAdam |
your assumption that my code contains bugs is wrong |
| 19:36 |
PilzAdam |
the one you discovered earlier was just a test to check if you review correctly ;-) |
| 19:36 |
|
proller joined #minetest-dev |
| 19:40 |
PilzAdam |
can I merge it now? |
| 19:40 |
est31 |
it seems kahrl is commenting |
| 19:41 |
kahrl |
yeah, I'm peephole reviewing |
| 19:42 |
PilzAdam |
github doesn't auto-update commit comments in the PR view |
| 19:46 |
est31 |
okay, having had a close look at GnuTLS, I've come to the conclusion that implementing encryption ourselves is much easier than using gnutls for rolling out dtls. |
| 19:47 |
kahrl |
lol |
| 19:50 |
est31 |
ill try a bit some more with gnutls, and if i give up ill get libnettle and do some aes(counter,packet) |
| 19:51 |
est31 |
tls was designed for TCP, dtls is a modification of it |
| 19:51 |
est31 |
also, tls is 99% used with certificates |
| 19:51 |
est31 |
we use tls with PSK (pre-shared-key) |
| 19:51 |
est31 |
so we dont need most of the parts of TLS |
| 19:53 |
kahrl |
ok, I'm through |
| 19:53 |
kahrl |
looks good except what I commented |
| 19:54 |
kahrl |
(as I said, I peephole-reviewed, so I only looked at small parts at a time, I didn't review the big picture) |
| 19:55 |
PilzAdam |
ah, good catch on the pairs() |
| 19:55 |
kahrl |
est31: wait, I thought ipairs was the one that preserved order |
| 19:56 |
PilzAdam |
previously I used the setting names as keys in the table, but then I decided to keep the order |
| 19:56 |
kahrl |
for the type variable, it's not an issue at the moment, but it could trip up someone that tries to modify this code later |
| 19:57 |
PilzAdam |
I'll change it |
| 19:58 |
est31 |
kahrl, sorry you are right |
| 19:59 |
PilzAdam |
fixed |
| 20:00 |
kahrl |
looks all good now |
| 20:01 |
kahrl |
+1 for merging from me. est31? |
| 20:01 |
est31 |
yes |
| 20:01 |
est31 |
+1 |
| 20:02 |
PilzAdam |
lets if I can still merge... it's been quite some time since my last time |
| 20:02 |
PilzAdam |
+see |
| 20:07 |
PilzAdam |
done |
| 20:08 |
PilzAdam |
I'll write a forum post |
| 20:08 |
est31 |
nice |
| 20:09 |
est31 |
why have you edited updatepo.sh? |
| 20:12 |
est31 |
--add-location is bad |
| 20:12 |
PilzAdam |
I added po/settings_translation_file.c to it, and later removed it |
| 20:12 |
est31 |
--add-location=file omits the number |
| 20:13 |
est31 |
line number |
| 20:13 |
PilzAdam |
it failed to run for me with =file |
| 20:13 |
PilzAdam |
feel free to add it back |
| 20:13 |
est31 |
your os is too old :) |
| 20:13 |
est31 |
recent xgettext has it |
| 20:17 |
|
younishd joined #minetest-dev |
| 20:18 |
|
Gael-de-Sailly joined #minetest-dev |
| 20:20 |
PilzAdam |
https://forum.minetest.net/viewtopic.php?f=18&t=13427 |
| 20:20 |
PilzAdam |
est31, I'll upgrade in 2017 when support is dropped |
| 20:22 |
|
FR^2 joined #minetest-dev |
| 20:22 |
est31 |
your xgettext is older than 0.18.4 right= |
| 20:22 |
est31 |
? |
| 20:22 |
est31 |
https://github.com/minetest/minetest/commit/94961b3364f76d5861913af321e9be6200d080b3 |
| 20:23 |
PilzAdam |
0.28.1 |
| 20:23 |
PilzAdam |
*18 |
| 20:23 |
Krock |
PilzAdam, why [Cancel] [Save]? Usually it's the other way |
| 20:23 |
est31 |
i dont think that |
| 20:23 |
est31 |
its mixed across applications |
| 20:23 |
PilzAdam |
Krock, it's consistent with the world creation dialog |
| 20:24 |
PilzAdam |
est31, it's also mixed inside of Minetest |
| 20:24 |
PilzAdam |
Krock, eh, not world creation; the configure world dialog |
| 20:24 |
Krock |
Found some stuff to read :) http://www.nngroup.com/articles/ok-cancel-or-cancel-ok/ |
| 20:24 |
PilzAdam |
world creation is exactly other way round |
| 20:25 |
PilzAdam |
Krock, feel free to create PR to make it consistent across Minetest |
| 20:25 |
Krock |
Okay, I'll do so |
| 20:27 |
PilzAdam |
kahrl, is it possible to automatically select the entry in the table when clicking the "+" to open a tree node? |
| 20:27 |
PilzAdam |
that way it would be way less "jumpy" |
| 20:28 |
PilzAdam |
currently the table gets updated when clicking +; and when updating the view always adjusts to contain the selected line |
| 20:29 |
|
Warr1024 joined #minetest-dev |
| 20:30 |
|
younishd joined #minetest-dev |
| 20:31 |
kahrl |
PilzAdam: it's possible (but not from lua, GUITable has to be changed) |
| 20:31 |
kahrl |
or perhaps updating the table should not scroll to the selected row |
| 20:35 |
PilzAdam |
kahrl, it would also be nice if the tree would be automatically extend so that the selected node is visible |
| 20:35 |
PilzAdam |
that way it would look the same when returning from the change dialog |
| 20:36 |
kahrl |
good idea |
| 20:38 |
PilzAdam |
not scrolling the table to the selected row would also fix other updates, e.g. toggling the "Show technical names" checkbox |
| 20:39 |
PilzAdam |
however, maybe that would the e.g. the world list to not show the currently selected world when starting up the game |
| 20:39 |
PilzAdam |
s/the/cause/ |
| 20:48 |
kahrl |
I tried the automatic extending to the selected item |
| 20:49 |
kahrl |
it seemed to work, but then I noticed that you can no longer close a subtree if one of its children is selected |
| 20:50 |
PilzAdam |
that would be fixed if clicking + would select this line |
| 20:50 |
PilzAdam |
wouldn't it? |
| 20:50 |
kahrl |
maybe |
| 20:59 |
PilzAdam |
this new settings commit closed 5 issues; mostly requesting single settings to be present in GUI :D |
| 21:12 |
|
Darcidride joined #minetest-dev |
| 21:39 |
Krock |
#3267 makes the "helper formspecs" look better - comments please :) |
| 21:39 |
ShadowBot |
https://github.com/minetest/minetest/issues/3267 -- Standardize the menu button order and sizes by SmallJoker |
| 21:48 |
kahrl |
#3268 |
| 21:48 |
ShadowBot |
https://github.com/minetest/minetest/issues/3268 -- Fix GUITable selection issues with trees by kahrl |
| 21:49 |
|
sloantothebone joined #minetest-dev |
| 21:56 |
est31 |
looks good |
| 21:56 |
est31 |
have you tested it kahrl ? |
| 21:56 |
kahrl |
yes |
| 21:57 |
est31 |
good for merge then |
| 21:57 |
kahrl |
thanks :) merge incoming |
| 22:00 |
|
hmmmmm joined #minetest-dev |
| 22:04 |
|
Miner_48er joined #minetest-dev |
| 22:41 |
|
Sokomine joined #minetest-dev |
| 22:45 |
|
kilbith joined #minetest-dev |
| 22:46 |
kilbith |
guys, i just fresh-cloned from latest commit with a virgin config and now you always spawn underground and the mapgen is fuckin screwed : https://lut.im/0vN7SbmIn4/NGGN7HUCRRalniYO.png |
| 22:47 |
|
DFeniks joined #minetest-dev |
| 22:52 |
kilbith |
no idea if it's related : WARNING[Main]: NodeDefManager: Ignoring CONTENT_IGNORE redefinition |
| 22:53 |
kahrl |
kilbith: nah, I also get that message but the spawn and mapgen is fine |
| 22:54 |
kahrl |
what game version are you using? |
| 22:55 |
kilbith |
minetest_game you mean ? |
| 22:55 |
kahrl |
yeah |
| 22:55 |
kilbith |
latest commit |
| 22:55 |
kahrl |
same here. Very weird |
| 22:55 |
kilbith |
i also compiled with clang |
| 22:56 |
kahrl |
hrmm |
| 22:56 |
kahrl |
it would be very strange but it could have an effect |
| 22:56 |
kahrl |
see e.g. https://github.com/minetest/minetest/issues/3237#issuecomment-147662882 |
| 22:57 |
kahrl |
so strictly speaking, mapgen is architecture and compiler dependent at the moment |
| 22:57 |
kahrl |
at least for lua mapgens. Not sure about minetest_game |
| 22:57 |
kilbith |
well no i highly doubt it's compiler fault |
| 22:58 |
kilbith |
no idea :( i closely checked my config and all from a fresh start |
| 22:59 |
kahrl |
if there's some undefined behaviour in minetest, then compilers can do whatever they want and it's not their fault ;) |
| 23:00 |
kilbith |
i'll inquire furthermore... |
| 23:35 |
|
OldCoder joined #minetest-dev |
| 23:55 |
|
est31 joined #minetest-dev |
| 23:55 |
est31 |
ahh the po file display bug is still there |
| 23:55 |
est31 |
somehow it got missed... |
| 23:55 |
* est31 |
trying to fix |