Time |
Nick |
Message |
00:12 |
erle |
oh LOL |
00:13 |
erle |
apenwarr redo is timestamp-based |
00:32 |
erle |
schwarzwald[m] kinda funny, the maority of the time that my build spends if nothing needs to be rebuild is asking cmake to please make sure that IrrlichtMt is up to date. |
00:32 |
erle |
schwarzwald[m] maybe you can optimize that? |
00:35 |
erle |
i mean maybe i should just also build irrlichtmt |
00:35 |
erle |
but it's so convenient to just ask cmake |
01:19 |
|
fling joined #minetest |
01:34 |
|
fling joined #minetest |
02:18 |
muurkha |
erle: it is true that strace has trouble stracing strace |
02:18 |
muurkha |
not sure if gdbing gdb has the same problem |
02:21 |
|
Guest9376 joined #minetest |
02:21 |
|
Guest9376 joined #minetest |
02:35 |
|
sys4 joined #minetest |
04:00 |
|
MTDiscord joined #minetest |
05:23 |
|
calcul0n joined #minetest |
05:38 |
|
est31 joined #minetest |
05:40 |
|
fling joined #minetest |
05:43 |
|
sys4 joined #minetest |
05:49 |
|
est31 joined #minetest |
05:56 |
|
reductum joined #minetest |
06:28 |
|
jonadab joined #minetest |
06:39 |
|
fling joined #minetest |
07:15 |
|
fling joined #minetest |
07:24 |
|
est31 joined #minetest |
07:25 |
|
behalebabo joined #minetest |
07:45 |
|
lemonzest joined #minetest |
07:45 |
|
erle joined #minetest |
07:51 |
|
Bombo joined #minetest |
07:51 |
|
Bombo joined #minetest |
08:05 |
|
fling joined #minetest |
08:05 |
|
est31 joined #minetest |
08:21 |
|
Talkless joined #minetest |
09:00 |
|
specing_ joined #minetest |
09:38 |
erle |
what does “this comment was marked as off-topic” mean here? i pointed out that it is possible to do this with the minetest engine: https://github.com/minetest/minetest/issues/4049 |
09:39 |
erle |
ig maybe “non-surface path finding can be done already” is not an argument for not adding it to the engine |
09:39 |
erle |
if done in lua |
09:45 |
erle |
https://dercuano.github.io/notes/crank-comment.html how do you know you are not a crank? |
09:46 |
erle |
> The major thing distinguishing me from the people I’ve listed above, then, would be that they have accomplished some significant things before retiring into crankhood, while I’m just some guy. |
10:40 |
erle |
rubenwardy schwarzwald[m] in case you wonder how to make cross-platform builds using very small shell scripts: https://redo.readthedocs.io/en/latest/cookbook/redoconf-simple/ |
10:40 |
erle |
> a handy way to build C and C++ programs that work on different Unix variants and Windows 10's WSL (Windows Subsystem for Linux), including the ability to use cross compilers and to compile the same source tree for multiple platforms in different output directories. |
10:42 |
erle |
i am not doing that, but you both seemed to be worried/interested regarding it |
10:57 |
MTDiscord |
<!~ ? Λtlantλs~!> @Goobax |
10:57 |
Goobax[m]1 |
Wesh |
10:58 |
MTDiscord |
<!~ ? Λtlantλs~!> lul |
10:58 |
Goobax[m]1 |
Il fout rien parabellum |
10:58 |
MTDiscord |
<!~ ? Λtlantλs~!> ui |
11:02 |
|
definitelya joined #minetest |
11:11 |
|
appguru joined #minetest |
11:12 |
|
olliy joined #minetest |
11:24 |
erle |
non-euclidean minetest when |
11:25 |
erle |
#define PI 3 ;) |
11:33 |
|
orwell96 joined #minetest |
11:48 |
|
ronoaldo joined #minetest |
12:12 |
|
JohannesPaulHoff joined #minetest |
12:28 |
|
cranezhou joined #minetest |
12:43 |
|
erle joined #minetest |
12:44 |
|
erle joined #minetest |
13:33 |
|
Noisytoot joined #minetest |
13:37 |
|
JohannesPaulHoff left #minetest |
13:58 |
|
est joined #minetest |
14:01 |
|
fling joined #minetest |
14:19 |
|
proller joined #minetest |
14:38 |
|
fluxionary joined #minetest |
14:40 |
schwarzwald[m] |
erle: It's far from portable or packageable, but I have my own CMake build working on my computer now. Oh, and it compiles faster for some reason. ^^ |
14:41 |
schwarzwald[m] |
I haven't timed it yet, but it's already compiled 90 sources with -O3 in the time it took me to get my tablet, open SchildiChat, and post this message. |
14:44 |
schwarzwald[m] |
I wasn't actually expecting it to *compile* faster so I'm really happy with this output. No precompiled headers or anything - it's just a plain ol' simple CMake with the bare minimum to work. |
14:44 |
schwarzwald[m] |
s/output/outcome |
15:00 |
|
erle joined #minetest |
15:04 |
erle |
great news |
15:04 |
erle |
the intel GM945 can effortlessly do wayland and kernel mode-setting |
15:05 |
erle |
i.e. i can now test minetest on wayland on basically the worst hardware that is able to run wayland without going the software rendering route |
15:10 |
|
Markow joined #minetest |
15:16 |
MTDiscord |
<MisterE> erle, https://content.minetest.net/packages/MisterE/karst_caverns/ |
15:17 |
erle |
MisterE[m] think of the area clearing code in the minigame that was slow. some mapgens have this all over the place. |
15:17 |
MTDiscord |
<MisterE> That uses 2 3d noises and 4 2d |
15:17 |
MTDiscord |
<MisterE> Quite expensive |
15:17 |
MTDiscord |
<MisterE> Not too slow but noticable |
15:17 |
erle |
and the performance characteristics of the engines are as such that you can't meaningfully expect it to be fast if you do it wrong |
15:18 |
MTDiscord |
<MisterE> True. But it can be slow if you do it right too |
15:18 |
MTDiscord |
<MisterE> If you do too much 3d |
15:19 |
MTDiscord |
<BuckarooBanzai> just fyi: a high octaves setting in the noise params can result in poor performance (in my tests anyway) |
15:19 |
MTDiscord |
<MisterE> Oh interesting. @grug brained modder ^ |
15:19 |
MTDiscord |
<Jordach> 3D noise is mapblock total area ^3 |
15:20 |
MTDiscord |
<Jordach> 2d is that but ^2 |
15:20 |
erle |
cubic performance is NEVER going to be good |
15:20 |
erle |
seriously |
15:20 |
MTDiscord |
<Jordach> 6400 vs 512k |
15:20 |
erle |
yep, that's 2 orders of magnitude |
15:20 |
MTDiscord |
<Jordach> Fun fact the 3D noiseless setting of reverb takes about 40ms total |
15:21 |
erle |
MisterE[m] my approach would be to simply do less work or do it smarter. |
15:21 |
MTDiscord |
<Jordach> Even flying at 80 nodes a second I can’t catch up to it |
15:21 |
erle |
at 80n/s a lot of stuff breaks down before you hit the invisible wall though, but in some games speedup items are useless due to mapgen lag |
15:22 |
MTDiscord |
<Jordach> I want performance to exceed v7 and carpathian |
15:22 |
MTDiscord |
<Jordach> I’m on track with that |
15:22 |
MTDiscord |
<MisterE> 3d noise with 3 2d noises = smarter, maybe |
15:22 |
MTDiscord |
<Jordach> Two noises alone can do it |
15:22 |
MTDiscord |
<Jordach> You don’t need three |
15:23 |
erle |
for example, any aircraft mod + unexplored areas + shitty lua mapgen = players having a bad time |
15:23 |
MTDiscord |
<MisterE> Can but only in 2 planes |
15:23 |
MTDiscord |
<Jordach> Guess what someone ran out of fuel exploring my mapgen trying to cross an ocean exceeding 22km lengths |
15:23 |
MTDiscord |
<MisterE> Xy, zx, zy |
15:23 |
MTDiscord |
<MisterE> In apercy's pa28 |
15:24 |
MTDiscord |
<Jordach> Remember a single 1d or 2d noise map that goes from 0-80 is fine |
15:24 |
MTDiscord |
<Jordach> Just for Y |
15:27 |
MTDiscord |
<Jordach> We only have to add or subtract that Y column anyways |
15:27 |
|
fling joined #minetest |
15:31 |
erle |
MisterE the thing is, while sfan5 work on async mapgen will make your life easier to an extent, it will only make minetest work harder, not smarter |
15:31 |
erle |
the jordach way is the way |
15:31 |
erle |
choose some benchmark and try to beat it |
15:32 |
erle |
and keep benchmarking your thing on the lowest-spec machine you have |
15:32 |
erle |
“benchmarking” can also be ”try it out” ;) |
15:32 |
erle |
on a low-spec machine you immediately figure out when you do a doo doo in your code |
15:33 |
erle |
for example, mineclone2 fire used to update the fire texture 66 times per second |
15:33 |
erle |
this was not a problem on the gaming rigs that fleck etc. have |
15:33 |
erle |
and not a problem if you tested locally |
15:33 |
erle |
but a huge problem for online multiplayer |
15:33 |
MTDiscord |
<Jordach> Basically my tests involve the time taker verbose setting |
15:34 |
erle |
fleck actually also believed that if you do it in C it will be necessarily faster |
15:35 |
erle |
but a bad choice of algorithm or an insufficient analysis of constraints can beat a good compiler every singe time |
15:35 |
erle |
single |
15:35 |
MTDiscord |
<Jordach> On the dev machine I have 120ms as a rough limiter to per mapblock time |
15:35 |
MTDiscord |
<Jordach> Currently I’m at about 95ms / 120ms |
15:35 |
erle |
MisterE[m] apart from builtin functions, the thing you have to look out for is going accidentally quadratic or cubic. |
15:36 |
MTDiscord |
<Jordach> Big O notation goes brrrrr |
15:37 |
erle |
for example, placing nodes a 10 random locations. you can solve this at least two basic ways: first, you choose 10 random positions, then place nodes. second, you have a loop with the exit condition “target area contains 10 nodes of that type” |
15:38 |
erle |
the first approach is obviously faster, because the second one will count the nodes in the area every time after you placed a node |
15:38 |
MTDiscord |
<Jordach> Dumb minimalist solutions work better than expensive clever ones |
15:39 |
erle |
depends. quadratic is the sweet spot where your solution might *look* minimal but really breaks down very soon. |
15:40 |
erle |
a relevant lua-mapgen example: if you want an area to look “corrupted” or so, you want some kind of random-walk process from the center outwards |
15:40 |
erle |
the naive recursive implementation of this will do a lot of unnecessary work |
15:41 |
erle |
any approach that remembers where nodes where placed though can be only a little bit more code |
15:41 |
erle |
but avoids doing almost as much work as the bottom-up solution (figure out all positions and set them in a single call) does |
15:42 |
erle |
the bottom-up solution is of course far more performant than the top-down solution here |
15:42 |
erle |
but there is a top-down solution with awful performance and one that is almost acceptable |
15:43 |
MTDiscord |
<Jordach> I just put a ban on overthinking |
15:43 |
MTDiscord |
<Jordach> How simple and obviously unsafe can I get it |
15:44 |
erle |
well in this case, ”not overthinking it” was drawing a circle and just sprinkling nodes into it. cora did that. it looked awful. then i did the 2d random walk thing and improved it so that it worked in negligible time. later core managed to make a 3d version of it to make root systems. |
15:44 |
erle |
there is no way “just randomly placing nodes in a cirle” would have sufficed for the 3d root system thing she realized she wanted at some point |
15:45 |
MTDiscord |
<Jordach> It would have worked if you remembered to draw lines between points |
15:45 |
erle |
wdym |
15:46 |
MTDiscord |
<Jordach> Sprinkle points > connect them to the base nose position |
15:46 |
erle |
the problem is a slightly bit more complex. you want less amount of nodes with distance from the center, or layers of different nodes at some point, but the structure in the end needs to be connected, as to seem organic |
15:47 |
erle |
for example, cora also used the 3d function of this to make parametrized geodes, or so she told me |
15:48 |
erle |
the problem with the point sprinkle is that it only works for the case where you do in fact have a probability distribution that can sharply be cut off at the outside |
15:48 |
erle |
it would not look ”grown” |
15:48 |
erle |
ultimately, i am pretty sure that an L-system tree would have solved this |
15:48 |
MTDiscord |
<Jordach> That too |
15:49 |
erle |
but we both had no idea how |
15:49 |
erle |
so we settled for ”solution fits in head” |
15:49 |
MTDiscord |
<Jordach> Tell me how long have I been overestimating the average competence of a minetest mod dev |
15:49 |
erle |
as the problem was not complex enough to learn L-system trees |
15:50 |
erle |
probably since the beginning? literally every piece of mod code i have seen (hilariously, including minetest_game) had obvious issues |
15:50 |
erle |
not saying they are always solvable |
15:50 |
erle |
but that they have issues is obvious |
15:51 |
erle |
i think people encounter dozens of software bugs in a week, maybe over hundred |
15:51 |
erle |
and just react with ”ok just don't hold it that way” usually |
15:51 |
erle |
and i mean different bugs |
15:51 |
MTDiscord |
<Jordach> Look I solve my problems by thinking different |
15:52 |
erle |
me too. that is why i made, for example, the redo PR. if you are interested in guaranteed correct incremental builds or ever ran into a “i better rebuild completely to have a known-good binary” problem, check it out! |
15:52 |
MTDiscord |
<Jordach> You know how clear CMake cache and make clean right |
15:53 |
MTDiscord |
<Jordach> CMake only cares for cmakecache.txt in the root folder |
15:53 |
erle |
yes, and i have worked about as long on making cmake behave until i realized it can not be fixed in principle |
15:54 |
MTDiscord |
<Jordach> My Mac build scripts for exploit CMake dumb habits rather than fixing them |
15:54 |
erle |
e.g. cmake is unable to record dependencies during the build (because it does the entire work before), so it can not know dependencies which on principle you can only know after building |
15:55 |
MTDiscord |
<Jordach> That cache file contains all the settings |
15:55 |
MTDiscord |
<Jordach> Stop chasing and jumping at shadows btw |
15:55 |
erle |
i have a demonstrably faster incremental build |
15:55 |
erle |
it is easy to test |
15:55 |
schwarzwald[m] |
Jordache blowing smoke over here. |
15:56 |
MTDiscord |
<Jordach> Nobody cares because it’s good enough |
15:56 |
erle |
switch a git branch, cmake & make will rebuild everything. redo will not. |
15:56 |
erle |
evidently i care. and schwarzwald[m] also cares. |
15:56 |
MTDiscord |
<Jordach> Even MSVC does incremental better FFI |
15:56 |
|
Yad joined #minetest |
15:56 |
erle |
the first step to making this better with almost zero effort would be to not use a stupid timestamp-based build system. but the problem is that once you do that it becomes painfully clear that the dependencies are underspecified. |
15:57 |
schwarzwald[m] |
Too much work. |
15:57 |
erle |
i already did the work |
15:57 |
erle |
;) |
15:58 |
erle |
but in the end, incremental cmake builds work *only* because rebuilding if the timestamp of a file has changed masks the fact that the cmake build files are badly maintained and probably hilariously wrong |
15:58 |
MTDiscord |
<Jordach> That claim is bullshit Earle |
15:58 |
schwarzwald[m] |
Doing it in a way that is likely to be applicable to most actual Minetest builds means creating a CMake generator for a build system that does the hash-based stuff. |
15:59 |
erle |
Jordach you can very easily confirm this by making a post-checkout hook that sets the timestamp of each file to the last time it was modified in a git commit, then jump around branches and commits. it breaks FAST. |
15:59 |
MTDiscord |
<Jordach> And running make clean solves the problem |
15:59 |
schwarzwald[m] |
xD |
16:00 |
MTDiscord |
<Jordach> And please take your meds |
16:00 |
MTDiscord |
<Jordach> And get a more recent PC |
16:00 |
erle |
Jordach alternatively, build minetest using my dofiles (probably using apenwarr redo, my redo is slower on mac because i was lazy) and output the dependency graph using “redo-dot” |
16:00 |
|
lilac_spice[m] joined #minetest |
16:00 |
|
lilac_spice[m] left #minetest |
16:00 |
erle |
all dotted edges in that graph are dependency relations for which i can 100% guarantee that cmake does not know about them |
16:00 |
erle |
dashed |
16:01 |
erle |
this is more about build correctness than speed |
16:01 |
erle |
but yes, if you rebuild everything every time than it works out using cmake |
16:01 |
erle |
but at that point, why are you using cmake at all lol |
16:01 |
MTDiscord |
<Jordach> It wouldn’t compile if it wasn’t correct already |
16:01 |
MTDiscord |
<Jordach> Please shut the fuck up |
16:02 |
erle |
not true. also easy to verify. there are cmake-compiled headers. if you rebuild multiple times in the same directory, you may end up in a sitution where e.g. version number or git hash reported is wrong, because cmake did not regenerate all the code that depended on it |
16:03 |
erle |
the solution to that is “don't do that and rebuild everything every time” or “don't work harder, work smarter” and use my build scripts |
16:04 |
erle |
which are, i want to say, HILARIOUSLY inefficient |
16:04 |
erle |
so i am kinda amused that they work |
16:05 |
erle |
maybe you do not count ”the binary i am getting does not correspond to the source code i am seeing” as a miscompile, but i do |
16:09 |
MTDiscord |
<Jordach> If anything it’s always miscompiled |
16:10 |
MTDiscord |
<Jordach> Since it has to match your kernel and cpu arch |
16:12 |
erle |
look, i don't care what you think. i want to be able to check out a branch that has a few difficulties and not wait more than 2 minutes for it to rebuild and not have a wrong binary afterwards |
16:12 |
erle |
and i want git bisect to work |
16:12 |
erle |
those are very practical issues |
16:14 |
erle |
another thing |
16:14 |
erle |
something on https://github.com/minetest/minetest/pulls goads firefox into hogging an entire CPU core. what is it? |
16:15 |
erle |
it does not happen on the issues list |
16:16 |
erle |
and noscript does not protect against it, oh my |
16:16 |
erle |
i bet it's some CSS or SVG bullshittery |
16:24 |
|
est31 joined #minetest |
16:24 |
|
wallabra joined #minetest |
16:25 |
erle |
using the firefox webrender debug profiler i can confirm that the /pulls github interface does something that invalidates the drawn page a lot |
16:25 |
erle |
but no idea what it is |
16:29 |
|
___nick___ joined #minetest |
16:35 |
ROllerozxa |
welcome to the modern web |
16:45 |
erle |
ROllerozxa i have enough experience that i can pull that off without JS while achieving something, but i can find no animated element on the page that would provoke a full redraw. anyways, here, have some 3D SVG: http://daten.dieweltistgarnichtso.net/src/political-compass-surreal.html |
16:46 |
erle |
ROllerozxa given that you suggested i make a proof-of-concept of the way i would build minetest, would you consider the reactions i got so far to be a) exceeding exppectations b) okay c) disappointing |
16:46 |
erle |
i think it was a good suggestions after all |
16:46 |
erle |
but so far it has only convinced people who have tried it (which are very few) |
16:53 |
|
est31 joined #minetest |
17:02 |
|
sys4 joined #minetest |
17:07 |
Goobax[m]1 |
AFCM: |
17:09 |
ROllerozxa |
well the PR hasn't been prematurely closed yet so I guess that's a positive |
17:09 |
ROllerozxa |
I haven't tested it yet though, maybe I should |
17:11 |
|
Verticen joined #minetest |
17:25 |
erle |
ROllerozxa well i guess it represents a proof of my grandiose claims |
17:25 |
erle |
it's still shit though |
17:25 |
erle |
i am opening too many subshells |
17:25 |
erle |
such is the problem when everything is a shell script |
17:25 |
erle |
technically, it does not need to be though, a dofile can be any executable |
17:26 |
erle |
i can definitely reduce filesystem outputs |
17:27 |
erle |
ROllerozxa please test it. it's really easy and maybe you find some obvious speedup. |
17:28 |
erle |
a full build with cmake on 8 cores here took a bit more than 3 minutes, a full build with apenwarr redo and PCH on 8 cores took a bit more than 4:30 |
17:30 |
schwarzwald[m] |
erle: If you want to time my build as well it's on my fork now, refactor/build branch. |
17:30 |
erle |
whereas my own implementation took over 9 minutes for the same task (but arguably because it does a lot more work, and the parallel build feature is stupidly simple) |
17:30 |
erle |
schwarzwald[m] is it faster than minetest proper? |
17:30 |
erle |
on your machine i mean |
17:30 |
schwarzwald[m] |
It seemed like it, but I'd be interested to have it timed. |
17:31 |
erle |
give mea link to a PR or a command with which to check out your branch please |
17:31 |
erle |
otherwise i have no idea |
17:31 |
schwarzwald[m] |
One catch: it won't build any tests yet, so a fair comparison will require disabling the tests on Minetest proper. |
17:31 |
erle |
oh |
17:31 |
erle |
how are you determining dependencies btw? maybe i can steal some parts |
17:32 |
erle |
though the cmake scripts i have seen were WAY WAY UGLIER than anything i can cobble together in shell |
17:32 |
erle |
they are more portable, but WHAT THE HELL |
17:33 |
* schwarzwald[m] |
sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/fe2093a4b81a25d541cef37e3fd35bc936b658e4 |
17:33 |
schwarzwald[m] |
erle: See what you think; I didn't clean up the find scripts yet, but my goal was to make it as clean as possible. |
17:34 |
schwarzwald[m] |
I found dependencies by building without deps and seeing what broke, adding the dep, and repeating. xD |
17:34 |
erle |
thanks |
17:34 |
erle |
lol |
17:34 |
schwarzwald[m] |
I found there was an unspecified dependency on the bundled bitop library. |
17:34 |
erle |
that's probably how i figured the -l flags |
17:34 |
erle |
neato |
17:35 |
erle |
i guess that means whenever that got changed, the incremental rebuild was incorrect? |
17:36 |
erle |
i mean, if it is not tracked, it is not tracked hehe |
17:36 |
schwarzwald[m] |
In this case, probably not. It was technically specified globally somewhere (it had to be or this wouldn't have compiled ever). |
17:36 |
erle |
oh i see |
17:37 |
schwarzwald[m] |
What that means of course is that if it changed it would cause a full rebuild. |
17:37 |
erle |
ha |
17:37 |
erle |
well, if you ever find a clear case of “check out this commit, then go to this other commit, incremental build miscompiles” maybe that's another untracked dependency |
17:37 |
erle |
can you tell me how i ended up in the situations where cmake did not recompile the version thing? |
17:38 |
erle |
i mean rebuild |
17:38 |
erle |
the version header |
17:38 |
erle |
is it simply not tracked for each file that includes it? |
17:38 |
schwarzwald[m] |
Maybe messing with the CMakeLists.txt timestamp? |
17:38 |
erle |
nope |
17:38 |
schwarzwald[m] |
You have to rerun the configuration step when the version variables change. |
17:38 |
erle |
i always did what rubenwardy suggeste, i.e. deleting stuff |
17:38 |
erle |
i know |
17:39 |
schwarzwald[m] |
As long as the configuration step runs it'll always configure the `cmake_config.h` header. |
17:39 |
erle |
what i *think* what happened is that cmake may not have rebuild that header somehow |
17:39 |
erle |
but that can't really happen when i think about it |
17:39 |
erle |
and i always did ”cmake . && make” or with a build dir |
17:39 |
schwarzwald[m] |
Yeah, that shouldn't happen. |
17:39 |
erle |
it only ever happened when that file was already there, so … could it be that cmake can forget about that it has to generate it? |
17:40 |
erle |
maybe it does not generate it in some circumstances when it thinks it has done that? |
17:40 |
schwarzwald[m] |
I doubt it, if you're talking about cmake_config.h |
17:40 |
erle |
yeah that and two others are generated |
17:40 |
schwarzwald[m] |
I don't know about the other files it generates. Those could potentially be handled inappropriately. |
17:40 |
erle |
there is one for the git revision |
17:40 |
schwarzwald[m] |
I think there's an unspecified dependency on a custom target. |
17:40 |
erle |
and one for the tests |
17:41 |
schwarzwald[m] |
The one for the git revision runs a Python script or something, right? |
17:41 |
schwarzwald[m] |
I don't think that one was specified as a dependency. |
17:41 |
erle |
no, just shell commands. and it is a good example of how a cmake script can be more portable but be a way uglier beast than a simple shell script. |
17:41 |
erle |
i mean |
17:41 |
erle |
it's not shell commands |
17:41 |
erle |
it's cmake variable wrangling |
17:41 |
erle |
but essentially it's probably shell commands if you scrape away the paint layer |
17:42 |
erle |
anyway, now that i have a tool that can output what the dependency tree *should* look like, i hope your job got much easier |
17:42 |
erle |
i just wish cmake would output the source file dependencies as well |
17:42 |
schwarzwald[m] |
Oh, I have extra warnings enabled so don't have a heart attack. |
17:42 |
erle |
then we could verify your build using mine |
17:43 |
erle |
do you think that suggestion has merit? |
17:43 |
erle |
like, make cmake cough up the dep tree |
17:43 |
erle |
then compare it and see what is different |
17:44 |
erle |
but automatically, not by hand |
17:44 |
schwarzwald[m] |
Very much so. |
17:44 |
erle |
then i look forward to whatever makes it do that |
17:44 |
erle |
i mean, really i can't imagine it can't do it |
17:44 |
erle |
it *has* to know the sources |
17:44 |
erle |
i bet it's just non-default |
17:45 |
schwarzwald[m] |
It won't know the sources of the libraries it depends on, but it must know the source files that are required to build the project. |
17:46 |
schwarzwald[m] |
It also won't handle the situation well where a library we depend on underspecified its own dependencies. |
17:48 |
erle |
well, you are not building any libraries, are you? |
17:48 |
erle |
btw, why is the cmake configuration step for irrlicht so slow when nothing changes? |
17:48 |
erle |
a large part of just invoking redo on my branch is waiting for cmake to tell it that yes, irrlicht is up to date |
17:49 |
erle |
i can speed it up obviously, but only at the cost of building irrlichtmt using redo |
17:49 |
schwarzwald[m] |
I don't know. |
17:49 |
erle |
it would only save 20 to 30 seconds or so |
17:50 |
erle |
and i never had any reliability issues with it due to the strict version requirements |
17:50 |
erle |
and the irrlicht headers included in minetest (at weird places sometimes) are already tracked |
17:51 |
|
fluxionary joined #minetest |
17:53 |
|
olliy1or joined #minetest |
17:53 |
schwarzwald[m] |
I cannot find any way to generate a graph with source files. |
18:01 |
erle |
another milestone: minetest also seems to build using “do”, the minimal implementation that always rebuilds everything and is even stupider about dependencies and source files than make is |
18:02 |
erle |
the way do marks a file as being generated is built is creating a zero size file ${FILENAME}.did |
18:02 |
erle |
lets see how far slower that build is than using cmake |
18:04 |
schwarzwald[m] |
erle: I have a bug again |
18:04 |
erle |
tell |
18:04 |
schwarzwald[m] |
> /usr/bin/ld: /tmp/minetest.WWCK2E.ltrans93.ltrans.o: undefined reference to symbol 'dlclose@@GLIBC_2.2.5' |
18:05 |
schwarzwald[m] |
I know how to link the DL libraries, but I can't tell which target this is. |
18:05 |
erle |
what do you mean |
18:05 |
schwarzwald[m] |
I can't tell which source file needs this. |
18:05 |
schwarzwald[m] |
Or whether a dependency needs it. |
18:06 |
erle |
i have a simple and funny solution |
18:06 |
erle |
build using my redo implementation (which uses -ldl) and then examine the source graph using: redo-dot '*ld*' >deps.dot |
18:07 |
erle |
or tell me the name of the library and i do the redo-dot thing for you |
18:07 |
erle |
and post the graph |
18:07 |
schwarzwald[m] |
I'm looking for an 'ltrans.o' |
18:08 |
schwarzwald[m] |
ltrans93 might be the library |
18:08 |
erle |
OH LOL |
18:08 |
erle |
building using “do” is faster than building using cmake |
18:09 |
schwarzwald[m] |
For Minetest? |
18:10 |
erle |
yes, do takes 8:35 for “./do src/precompile.gch.h all” vs cmake taking 8:55 for “cmake . && make” |
18:10 |
erle |
on a single core |
18:10 |
erle |
maybe cmake is doing some important configuration step with these 20 seconds |
18:10 |
erle |
within |
18:10 |
erle |
but honestly this shoud be a motivation for both of us |
18:10 |
schwarzwald[m] |
I challenge that my script is comparable to do. |
18:11 |
erle |
because you can't do less work than do as a build system basically |
18:11 |
erle |
i'll test it soon-ish |
18:11 |
erle |
like, maybe today or so |
18:11 |
erle |
first the build graph thingy |
18:13 |
erle |
schwarzwald[m], just to be sure, you want all dependencies or dependers of ltrans.o? |
18:13 |
schwarzwald[m] |
Grep doesn't show any calls to `dclose` in Minetest. |
18:14 |
schwarzwald[m] |
erle: Yes. |
18:14 |
erle |
neither redo-sources nor redo-targets gives me that file |
18:14 |
erle |
i try “redo-sources |grep libdl” |
18:14 |
schwarzwald[m] |
Ok, that's interesting. |
18:14 |
erle |
that gave one source file /usr/lib/i386-linux-gnu/libdl.so |
18:15 |
schwarzwald[m] |
What are its dependers? |
18:15 |
erle |
wait for it |
18:15 |
schwarzwald[m] |
(That is super useful BTW!) |
18:16 |
erle |
yes, maybe you should use a build system that has this lol |
18:17 |
erle |
hmm, give me a moment to verify this |
18:19 |
erle |
schwarzwald[m], judge for yourself, the output of “redo-dot '/usr/lib/i386-linux-gnu/libdl.so' |dot -Tpng” https://mister-muffin.de/p/x-pm.png |
18:19 |
erle |
same on x86_64 |
18:19 |
erle |
i mean not same library name |
18:19 |
erle |
but i can not say |
18:19 |
erle |
thanks for that ig :D |
18:19 |
erle |
we can wait a week and ask all the questions in #minetest-dev ig :P |
18:24 |
schwarzwald[m] |
Ah, found it. |
18:24 |
erle |
tell |
18:24 |
schwarzwald[m] |
erle: It's lua |
18:25 |
erle |
oh |
18:25 |
erle |
then i don't need to link libdl |
18:25 |
erle |
because i am linking against system libraries, right? |
18:25 |
erle |
well i should try all that |
18:25 |
schwarzwald[m] |
If you're linking against a dynamic LuaJIT you don't need to link against libdl. |
18:26 |
schwarzwald[m] |
This is another case of Minetest's dependency handling being an absolute mess to read and work with. |
18:28 |
schwarzwald[m] |
Yep, the DL libs were missing from the Lua dependencies. |
18:28 |
schwarzwald[m] |
They were never specified. xD |
18:28 |
sfan5 |
they are specified, just incorrectly |
18:28 |
sfan5 |
lib/lua/CMakeLists.txt |
18:28 |
sfan5 |
39:set(COMMON_LDFLAGS "${COMMON_LDFLAGS} -ldl ") |
18:29 |
schwarzwald[m] |
Ah, there it is. |
18:29 |
schwarzwald[m] |
You're right. |
18:29 |
sfan5 |
(the flags don't really go anywhere, 'incorrectly' like I said) |
18:29 |
|
Rafi59 joined #minetest |
18:29 |
schwarzwald[m] |
We may not have written the CMake in the bundled lua ourselves, IDK. |
18:33 |
* schwarzwald[m] |
sent a cmake code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/1c6dd1d8dfa67726b3df89c10374d48885e80f50 |
18:34 |
schwarzwald[m] |
Little teaser. xD |
18:34 |
schwarzwald[m] |
It's very far from being portable, though. |
18:34 |
schwarzwald[m] |
I have a long ways to go before I can consider PRing it. |
18:38 |
|
___nick___ joined #minetest |
18:41 |
|
___nick___ joined #minetest |
18:55 |
erle |
rubenwardy celeron55 given that we have two people who are right now working on cleaning up the build and another 4 or 5 (not necessarily in this channel) who are interested in solving this, could you please reopen https://github.com/minetest/minetest/issues/11749 ? sfan5 closed it because he thought it is not feasible to fix all of it, but a) i have proven you can fix all of it (albeit with a different build system) b) it seems to |
18:55 |
erle |
me that schwarzwald[m] is working on fixing at least what can be fixed about cmake |
18:56 |
erle |
also i think closing bugs with ”it's too much work” when several people are working on it is a bit weird, to say the least |
18:56 |
sfan5 |
read the closure message again and contemplate whether you have addressed all of its points |
18:56 |
erle |
the issue is not titled “use redo instead of cmake” |
18:57 |
sfan5 |
given you have obviously not done what I said I will not reply further |
18:59 |
erle |
look, i have read it. i could have made three or more different issues instead i guess. |
18:59 |
erle |
just because i have a solution it does not mean it has to be THE solution. |
18:59 |
erle |
but the problem persists |
18:59 |
sfan5 |
in that case I am sorry for your reading disability |
18:59 |
sfan5 |
maybe find something else to do instead of annoying other people with it |
19:02 |
erle |
sfan5 could you please be a bit less of a dick? i have seen this dismissive and arguably insulting behaviour multiple times, not only towards me, where you misunderstand something and then act like you know it all. often you walk it back, sometimes not. i get that you are annoyed by people not providing accurate information (e.g. me) or writing walls of text about stuff you have no interest in (e.g. me). but you know fuck all about |
19:02 |
erle |
build systems and i don't intend to annoy you or anyone else. i want to solve a real problem that i have and you do not. |
19:03 |
erle |
it's tiring |
19:03 |
erle |
just ignore the fucking topic and let others do their stuff |
19:04 |
schwarzwald[m] |
Excuse me, but this kind of language is unacceptable in a dev community. |
19:04 |
erle |
after all, you don't have to do shit, but throwing a wrench into the works because you can not imagine a solution that you can accept is just frustrating. |
19:04 |
erle |
there will be something that is better than the status quo, most likely not from me. |
19:05 |
schwarzwald[m] |
There's already been a suggestion raised to ban you, and I don't think anybody will vote against that after such a derogatory, ad-hominem tirade against one of the lead core-devs. |
19:06 |
erle |
schwarzwald[m] yep, it's rude. i can't stand the mix of “if you want bugs fixed do it yourself” and not “oh not THAT WAY”. |
19:06 |
schwarzwald[m] |
Whether you like it or not he's in charge of the project and you are not. |
19:07 |
erle |
look, sometimes asking people to be less of a dick works. you are trying it right now with me. |
19:07 |
erle |
also there are multiple people who i asked if they wanted to contribute to minetest and who are specifically not doing it because of the dismissive behaviour towards issues dev consider unimportant. |
19:07 |
erle |
they are not here, so i have no proof lol |
19:07 |
erle |
but it's exceedingly frustrating |
19:07 |
erle |
and telling me i have a reading disability is insulting |
19:08 |
schwarzwald[m] |
I haven't called you any such thing. I'm just warning you, because I think you crossed a line and everyone here can see it. |
19:08 |
|
vampirefrog joined #minetest |
19:08 |
erle |
no but sfan5 has |
19:08 |
erle |
i actually have difficulties writing and arguably difficulties explaining things, reading comprehension is fine i think, reading speed is 2 to 4 of the next-slower person i know. |
19:09 |
schwarzwald[m] |
Some people might not be sympathetic with that excuse. |
19:09 |
sfan5 |
I am being a dick because any time I regrettably reply to your messages (this one happened to ping me) I get a reply that makes it obvious you are ignoring the context and this would turn out to be yet another huge argument that goes in circles about nothing |
19:09 |
erle |
it's not an excuse |
19:10 |
erle |
oh i am sorry about the ping then |
19:10 |
|
sys4 joined #minetest |
19:10 |
sfan5 |
that's not really the issue |
19:10 |
erle |
i hate it when people highlight me and i don't want to think about it |
19:10 |
erle |
in this case there was not even anything meant in it for you, i obv didn't think it through |
19:11 |
|
est31 joined #minetest |
19:12 |
|
fling joined #minetest |
19:12 |
erle |
well, i guess i tried. regardless, please be friendlier on other issues. i am pretty sure people are making fun of me without me knowing it, but you should know people are also making fun of you without you knowing it. |
19:12 |
erle |
and in both cases it's some kind of abrasive behaviour |
19:12 |
sfan5 |
when you mention dismissive behaviour then I can assure you it's intentional because 90% you come up is a waste of time in my eyes |
19:13 |
sfan5 |
like seriously there's a release coming up with regressions that need solving and you have been pouring time into build systems for weeks, lol? obviously you aren't required to do anything as a random community member but I can't say that is productive either |
19:13 |
sfan5 |
but I think I can save us both a lot of time if I put you on my ignore list, just don't change nicks too often or that won't work |
19:14 |
erle |
i have pouring time into the build system for days, to actually find the source of two of those issues |
19:14 |
erle |
i told you i want git bisect to work |
19:14 |
schwarzwald[m] |
Thanks for working on the release sfan, I know you don't get a lot of thanks for this stuff, at least you sure haven't recently. |
19:14 |
erle |
i'm starting with the autoforward thing and hope i don't end up at some giant commit |
19:14 |
sfan5 |
you can take this as informational, nothing you say is going to redeem this really |
19:15 |
erle |
oh i know |
19:15 |
sfan5 |
schwarzwald[m]: I haven't really done much recently |
19:15 |
schwarzwald[m] |
Because erle has been preventing it by constantly being a distraction? (/s) |
19:15 |
erle |
and i know the dismissive behaviour it's intentional. i just think there is plenty of time to dismiss issues when no one is going to put in the work and no one is really interested. take the mali 400 GPU thing. no one is writing those shaders. |
19:16 |
erle |
and i will not make sure minetest shaders work with my crap GPU, i'll just try to disable the option for shaders on shitty hardware. |
19:16 |
sfan5 |
schwarzwald[m]: I've been more motivated to work on other projects recently so that's what I've been doing |
19:16 |
erle |
so closing the mali 400 GPU issue is arguably correct, the issue is not going anywhere, the solution is to just not use shaders |
19:17 |
schwarzwald[m] |
Makes sense, I hope those projects go well! |
19:17 |
erle |
but when you have community interest in a topic to the extent that multiple people are doing something about it, then i think it's wrong to judge their solutions without ever having seen or tried them. |
19:18 |
schwarzwald[m] |
erle: Do you think Jodach will launch a nuke at my house if I tell him I may have broken Mac OSX compat, or should I risk it? |
19:18 |
erle |
schwarzwald[m] nukes it is |
19:18 |
erle |
jordach will justifyably make fun of you probably |
19:18 |
schwarzwald[m] |
Hmm, that's what I thought as well! |
19:19 |
erle |
but i can present a more acceptable target, myself: i did not know how to correctly invoke “stat” on OS X, so my redo implementation will just not work unless you install gnu coreutils hehe |
19:19 |
erle |
you can use apenwarr redo though, that's even in brew |
19:19 |
erle |
it has 1.6k stars on github too |
19:20 |
erle |
cmake has no stars on github (because it is not on github) |
19:20 |
schwarzwald[m] |
That won't be a problem unless CMake gets hacked because they tried to manage their own git repo security. |
19:20 |
erle |
hehe |
19:22 |
erle |
btw: the only thing i think is more frustrating than closing issues with a justification relying on not understanding the thing is when something is closed and there obviously was some talk about it or some consideration, but there is no message. |
19:22 |
schwarzwald[m] |
I have someone I think to test my build setup on MSVC, so I'll be able to get it working on two platforms at least. |
19:22 |
schwarzwald[m] |
I can test it on OpenBSD as well, myself. |
19:23 |
erle |
oh nice |
19:23 |
erle |
i'll test your cmake thing, can you test my redo thing on openbsd? and maybe tell me what the openbsd tracing facility is |
19:23 |
erle |
i suspect it's not strace |
19:23 |
schwarzwald[m] |
Sure, I can set that up later. |
19:24 |
erle |
thanks |
19:24 |
schwarzwald[m] |
I can't fully test it TBF, because I don't have a graphical environment set up, but I can make sure it builds. |
19:24 |
erle |
that's all i want to know. the reason i made it as shell script is that i do not want to add any build dependencies. |
19:24 |
schwarzwald[m] |
Where should I download the redo thing from? Just clone your fork? |
19:25 |
erle |
just clone the branch i do the PR from and install either my redo, apenwarr redo or apenwarr do. i haven't tested with any other implementation so far, but those three are the only somewhat popular i think. |
19:26 |
erle |
mine will give you the greatest dependency graph coverage, apenwarr redo will give you the most error messages, apenwarr do will build fastest (because it does not record dependencies) |
19:26 |
muurkha |
btw I would like to add that I do not think it is crossing a line to ask someone to be less of a dick when they are intentionally insulting you, schwarzwald[m] |
19:26 |
erle |
the error message thing is only relevant if there is an error in the buld files |
19:26 |
erle |
well, the line was crossed. twice. |
19:29 |
erle |
anyway, i won't open another issue on this. but i am very sceptical that if schwarzwald[m] can improve the cmake build to the point that some part of issue #11749 is solved it will be rejected as WE DO NOT WANT TO HEAR ABOUT IT. |
19:29 |
ShadowBot |
https://github.com/minetest/minetest/issues/11749 -- CMake does not capture all dependencies, causing erroneous incremental builds & build failures |
19:29 |
muurkha |
there are a variety of reasonable ways to respond to somebody intentionally insulting you, and asking them to please not do so seems like a pretty good one |
19:29 |
muurkha |
schwarzwald[m]: was your problem that he used the word "dick"? |
19:31 |
erle |
i can assure you i know much more colorful language. but i have no interest in getting into a tone argument. |
19:31 |
schwarzwald[m] |
I was concerned that his response might be considered insulting, and I didn't think it was appropriate to respond to an insult with another insult. Even if this is not a professional environment, it should be. |
19:32 |
muurkha |
if it were me I wouldn't consider "please be a bit less of a dick" insulting, and it looks like his interlocutor didn't either, since his response was "I am being a dick because [criticism]" |
19:33 |
erle |
look, i think both he-who-shall-not-be-named-to-be-not-highlighted and me are usually holding back (we have been frustrating each other for a while). to me it's not a big deal, but if it is to you, i can assure you i can stop insulting people through words and continue to do it by writing code that proves some outlandish crank-sounding claims i made or disarpoves some common-sense-intuition that someone else had. |
19:34 |
muurkha |
I don't agree that we should aspire no higher than professionalism, but your opinion weighs a lot more than mine |
19:34 |
erle |
disproves |
19:34 |
muurkha |
I think we can aspire to much higher values than professionalism |
19:34 |
erle |
i obviously have more problems writing than reading |
19:35 |
erle |
i actually tolerated a friend of mine insulting me for years, because i could take it. it turned out that quite a few people distanced themselves from people around her (incluiding me, bc i was friends with her) because *they* felt bad when she insulted me. |
19:35 |
erle |
so i totally get it that insults can produce a bad mood |
19:36 |
|
Yad joined #minetest |
19:36 |
erle |
even if you are not insulted yourself, that's totally valid |
19:37 |
erle |
muurkha btw, about worrying that you sound like a crank when you have outlandish claims (re: an article in dercuano) – i usually ask people who are more competent or similarly knowledgeful to double-check my work. |
19:37 |
schwarzwald[m] |
I didn't mean to be pushing any kind of personal opinion, I was just warning him because it came across to me as socially inappropriate. |
19:37 |
schwarzwald[m] |
Maybe we come from different cultures. |
19:37 |
erle |
asking DJB is pointless though, he never responds to emails |
19:38 |
|
definitelya left #minetest |
19:38 |
|
definitelya joined #minetest |
19:40 |
erle |
schwarzwald[m] regretably, a part of minetest culture tolerates much worse behaviour than me or anyone else in this channel. if you ever come across a server that says “no dating”, they mean “don't spam our public chat with your flilthy perverted fantasies, we can assure you no one is interested”. took me a while to understand it ;) |
19:41 |
schwarzwald[m] |
Those warnings suggest that that's not tolerated. |
19:41 |
erle |
at least contrasted to minecraft, i have absolutely seen no love for fascists. everyone hates them, even the griefers. |
19:41 |
erle |
on that server lol |
19:41 |
erle |
search the server list for ”this is a dating server” |
19:41 |
erle |
jr |
19:41 |
erle |
;) |
19:41 |
erle |
“jr” = “;)” without shift on neo2 |
19:41 |
schwarzwald[m] |
Minetest is FOSS so it's going to atract all kinds of people. |
19:42 |
schwarzwald[m] |
These channels are moderated, however. |
19:44 |
erle |
ultimately it's pointless to continue this. both you and me can maintain our own build scripts if they are superior, as in the end, you will not need more than a few thousand lines and i will not need more than a few hundred. |
19:45 |
|
InFerNo_ joined #minetest |
19:48 |
erle |
schwarzwald[m], are you satisfied if i'll assure you that i'll try to be more friendly towards people who insult me? you can call me out if you notice me doing it, in fact i'd appreciate it. |
19:54 |
|
InFerNo_ joined #minetest |
20:07 |
schwarzwald[m] |
You have no obligation to satisfy me and I cannot ask you to. |
20:08 |
schwarzwald[m] |
Fun fact: you can have CMake propagate source file dependencies to dependants. xD |
20:08 |
erle |
well, i am not trying to not cause bad feelings without purpose. |
20:08 |
erle |
what does that mean? |
20:08 |
erle |
are we getting the graphviz output we need to compare redo and cmake graphs? |
20:09 |
schwarzwald[m] |
I mean I can make it so Irrlicht's CMake tells Minetest to compile Irrlicht. |
20:09 |
erle |
“well, i am not trying to not cause bad feelings without purpose.” ← obviously i have a writing problem |
20:09 |
schwarzwald[m] |
I'm not personally insulted at all. |
20:10 |
schwarzwald[m] |
I'm not trying to make excuses for anyone either. |
20:12 |
schwarzwald[m] |
I just forgot that telling people you think they're out of line is taboo, no people told me I'm out of line. |
20:12 |
schwarzwald[m] |
s/no/so/ |
20:13 |
schwarzwald[m] |
(It was a fair point, though.) |
20:13 |
erle |
i mean i am not trying to upset people without getting something out of it. for example, when someone forcefully touches me without my consent, i often threaten violence immediately, if i think this will intimidate them enough to never, ever do it again. this is excessively rude – but it works. and of course i won't say it to a bouncer, police, or some random drunk person or someone who just stumbled into me. i only say it t |
20:13 |
erle |
o people that do not respect boundaries (like not wanting to be touched). |
20:13 |
erle |
it's important to know that i'm a wimp, i won't win a fight. |
20:14 |
erle |
but the message is “this is so far over the line that if you do it again, i will hurt you”. insulting peeople back when you feel insulted can work similarly, with the added complication of much higher risk of escalation (e.g. yelling at each other). |
20:15 |
erle |
but usually, if i upset or annoy people, it's not intended, it's a side effect |
20:19 |
|
olliy joined #minetest |
20:21 |
|
YuGiOhJCJ joined #minetest |
20:21 |
erle |
schwarzwald[m], you are not out of line and teling people that they are out of line is not taboo btw |
20:22 |
schwarzwald[m] |
I've pushed a much cleaner refactor to my branch, including the libdl fix. |
20:22 |
schwarzwald[m] |
166 LoC in src/CMakeLists.txt now. xD |
20:23 |
schwarzwald[m] |
It'll necessarily be more in order to be be portable. |
20:24 |
erle |
what a shame that the issue you'll be solving is marked WONTFIX :P |
20:25 |
schwarzwald[m] |
I'm not planning to solve it, or make a PR necessarily. :) |
20:26 |
schwarzwald[m] |
I'll use it locally, let others try it if they're interested, and then when people start asking me to PR it I'll know it's time. |
20:27 |
erle |
yeah i only also got really motivated when i got feedback from others that amounted to “i'll probably use that if it holds what you promise” |
20:27 |
|
proller joined #minetest |
20:27 |
schwarzwald[m] |
Or not, because I don't want it to be merged prematurely - that'd be even worse. |
20:27 |
erle |
if you don't want it to be merged, don't request a merge lol |
20:28 |
erle |
but i can assure you, getting approval is so insanely hard – probably even harder when there is not only no support, but active dislike for even touching the topic. |
20:28 |
erle |
i doubt you need to worry anyone likes your patches *too* much |
20:28 |
schwarzwald[m] |
That's good news. I'm looking forward to seeing how redo works out on my OpenBSD machine. |
20:29 |
erle |
to get qestionable stuff merged without delays you pretty much need to be a coredev (not saying that all or even most of the stuff they do is questionable, but i have seen some things that were obviously wrong and i have been annoying about it) |
20:30 |
schwarzwald[m] |
I've never contributed anything really helpful to a release IIRC, but other than a few justifiable exceptions I've never found it hard to get approvals. |
20:30 |
erle |
but even then you need to convince one other person |
20:30 |
erle |
and that is HARD |
20:30 |
erle |
well, the problem is that people have other interests than you |
20:30 |
erle |
and lives you know |
20:30 |
erle |
no one works on this full time |
20:30 |
schwarzwald[m] |
Of course, just like myself. |
20:31 |
erle |
i'm just saying i have noticed that some are more equal than others |
20:31 |
erle |
but it's hard anyway |
20:31 |
erle |
and that's good |
20:31 |
erle |
if you merge everything, you end up with a big ball of mud, so i don't think having a high barrier to endry is a bad thing |
20:31 |
erle |
entry |
20:32 |
erle |
do you know catalysm: dark days ahead? |
20:32 |
schwarzwald[m] |
Nope. |
20:32 |
erle |
it's a very detailed roguelike and i think they have so far merged every single absurd feature someone implemented. |
20:33 |
erle |
think dwarf-fortress-like complexity, but a) accessible b) free software c) developed by furries |
20:33 |
erle |
well i can't promise you the last part |
20:33 |
erle |
but they draw the line at excrements |
20:33 |
erle |
everything else is fair game |
20:33 |
erle |
so the game has a very detailed drug crafting system. and i don't mean insulin, i mean heroin. or a system to layer the clothes you are wearing in a different way. |
20:34 |
erle |
there is a scent overlay that is invisible to players except in debug mode, but mobs can use it |
20:34 |
schwarzwald[m] |
heh |
20:35 |
erle |
and one advice for reporting bugs is “make sure that you do not have the trait ’schizophrenic’ before you report a bug” i think, because it messes up the interface slightly |
20:35 |
erle |
i once figured out that my character was going off the rails when a zombie had the name “your mom” |
20:36 |
erle |
it's the type of game where your character dies not because people turn into zombies when bitten, but because they did not clean the wound and did not have antibiotics |
20:36 |
erle |
and where stuff that should work, just works |
20:36 |
|
BuckarooBanzai joined #minetest |
20:36 |
erle |
lighter, duct tape and spraypaint? yep, that works |
20:36 |
definitelya |
erle: Zombie-furries...? |
20:37 |
definitelya |
Now that's a scary thought. |
20:37 |
erle |
definitelya no, the game has some hints that some of the devs might be or have been furries though. or maybe it's an elaborate prank. |
20:37 |
erle |
anyways, i wished minetest had some similarly intuitive crafting |
20:37 |
erle |
so far i have seen the normal way, the ”do everything like minecraft” way and … nodecore lol |
20:38 |
erle |
exile is a bit like cataclysm, but mostly in the way that you'll die a lot |
20:38 |
erle |
my first character in cataclysm died because it was too cold and i had a lighter |
20:38 |
erle |
and so i was like: this is a game, fire is hot, i set something on fire |
20:38 |
erle |
never set a chair on fire indoors |
20:39 |
erle |
it can lead to smoke inhalation! |
20:39 |
erle |
so yeah, what would be stupid in real life is a stupid decision in the game |
20:39 |
definitelya |
My first one got mauled by dog fiends. :( |
20:39 |
erle |
drinking out of the toilet? you better cook that water, or you puke. and when you puke, you lose satiation from stuff you ate previously. |
20:40 |
erle |
in game design terms, i think cataclysm DDA is the most complex game i have seen people pick up without a manual |
20:40 |
|
YuGiOhJCJ joined #minetest |
20:56 |
muurkha |
erle: I think I mostly got over worrying about how I sounded in Dercuano, Derctuo, and Dernocua because nobody reads them anyway :) |
20:59 |
erle |
muurkha i think worrying about sounding like a crank is totally appropriate when making outlandish or even just original claims. but when others can verify themselves one should not bother too much. |
20:59 |
erle |
except, maybe, when you start sounding like moldbug. the whole urbit thing is such a stupid waste of time. |
21:00 |
|
specing_ joined #minetest |
21:01 |
erle |
i.e. now i avoid every type of software written by devs who e.g. constantly rename their core features. it's a really strong scam signal. or that marketing is steering the development. |
21:02 |
erle |
specing given that you have your own cheat client, you found any build problems that schwarzwald[m] or me could solve or might have solved already? |
21:02 |
specing |
I don't have a cheat client, I have an Improved Player Experience client |
21:02 |
erle |
muurkha btw, since i forgot that apenwarr redo was timestamp based, you should verify everything i claimed about it. don't let me discourage you. |
21:02 |
erle |
specing that's fine, i'm also an improved player |
21:03 |
specing |
(: |
21:03 |
erle |
i'll be presenting semgrep in the context “how i found a dupe in mineclone2 the devs missed” at work soon :P |
21:03 |
erle |
it's a really nice tool btw |
21:04 |
erle |
specing what are the main features you added btw? |
21:04 |
specing |
I see a lot of arguing, and not a lot of build issues |
21:05 |
specing |
erle: oh, just node and inventory interaction stuff |
21:20 |
erle |
specing please extrapolate your onions https://github.com/minetest/minetest/pull/12592 |
21:21 |
specing |
I see Github, I boycott |
21:24 |
MTDiscord |
<ROllerozxa> gee, better start boycotting Minetest then |
21:25 |
specing |
yuck discord |
21:26 |
ROllerozxa |
is this better |
21:26 |
MTDiscord |
<Jonathon> debatable, use whats best for you |
21:26 |
specing |
the bridge is still there, so no |
21:27 |
wsor |
specing is kinda https://xkcd.com/1782/ tbh |
21:28 |
ROllerozxa |
IRC do be kinda cozy tho but doing IRC on mobile is a bit jank |
21:28 |
erle |
you had to say this on IRC using an IRC client |
21:28 |
specing |
Totally ignoring that Matrix exists |
21:29 |
erle |
ROllerozxa try using an irc client via XMPP bridge on mobile using a mobile xmpp client. it solves all of the ”i am timeouting all the time” issues and a bunch more. |
21:29 |
erle |
specing matrix exists and i invite you to take a look under the hood. it's amusing how bizarre it is. |
21:30 |
specing |
Wonder what you'd find if you could look under discord's hood |
21:30 |
specing |
might need a flamethrower |
21:30 |
wsor |
matrix is a step in the right direction, however its got quite a lot of rough/broken edges |
21:30 |
ROllerozxa |
specing: spyware and furries, better not look xD |
21:31 |
specing |
wsor: right, they just need to start data mining their users and selling it all to advertisers and then it'll be perfect |
21:32 |
wsor |
more referring to functionality things, but whatever float your worldviews boat |
21:32 |
schwarzwald[m] |
As a wise man once said: "Matrix is a protocol." |
21:33 |
erle |
i maintain matrix is a step in the entire wrong direction, insofar that it is less extensible than xmpp, creates an absurd amount of requests and the spec is changed when the biggest client has a bug the devs do not want to fix. but enjoy your “i can make a server hang by joining a room on another server in a slightly weird manner” chat protocol ig ;) |
21:34 |
erle |
schwarzwald[m] the problem with matrix is that the ”is a protocol” thing breaks down when the spec is changed if the most popular client or server – maybe even maintained by the company that writes the spec – makes a doo doo in the bug trackerj |
21:34 |
ROllerozxa |
also re: mobile IRC, it's not that, I already have a bouncer I connect to and Revolution IRC is a decent enough app, but if I just quickly connect to my bouncer while it's connected on my computer I will not get any message context, it's a bit irritating having this desync of the message history >< |
21:35 |
erle |
ROllerozxa that's the beauty of mapping IRC to an XMPP MUC, your client can ask the transport for the history (i think, it has been a while) |
21:35 |
erle |
in fact, when you join an xmpp muc you always get previous messages if the server will deliver them. slack, famously, did not do this, because you could have exported the chat history via that. |
21:36 |
erle |
(slacks business model is holding your chat history ransom) |
21:36 |
ROllerozxa |
interesting |
21:36 |
erle |
just install e.g. gajim (desktop) or conversations (mobile) and join some multi-user chat |
21:36 |
erle |
not sure if conversations does it, but gajim has two options for “how far back“ and “how many messages” |
21:37 |
erle |
ROllerozxa chose any client that has full support on this list to get full end to end encryption btw https://omemo.top/ |
21:37 |
erle |
i used the IRC-via-XMPP solution when i was traveling by train more often |
21:39 |
Izaya |
biboumi is <3 |
21:42 |
erle |
is this a dating channel? :D |
21:42 |
Izaya |
biboumi is the XMPP->IRC bridge I use |
21:56 |
erle |
so we already have an expert on the topic here |
21:56 |
erle |
that's great news |
21:56 |
erle |
Izaya, can you confirm my assertions about MUC reliability when mapping an IRC channel? and automated earlier message delivery? |
22:34 |
|
panwolfram joined #minetest |
22:35 |
|
vampirefrog joined #minetest |
22:40 |
|
cranezhou joined #minetest |
22:41 |
|
wallabra joined #minetest |
22:49 |
|
Lesha_Vel joined #minetest |
23:03 |
|
cranezhou joined #minetest |
23:12 |
|
est31 joined #minetest |
23:27 |
|
fling joined #minetest |
23:40 |
|
sys4 joined #minetest |
23:48 |
Izaya |
I've got a weird case in that I always have an XMPP client running somewhere, usually on my desktop at home, but I do get history when I connect |
23:49 |
MTDiscord |
<Benrob0329> Hah, acting like XMPP isn't bizarre or convoluted under the hood |
23:49 |
MTDiscord |
<Benrob0329> Matrix's client API is far simpler and more to the point than XMPP could ever hope to be, but both need some help |
23:49 |
Izaya |
I'm pretty sure that if all the clients talking to the IRC bridge leave it'll disconnect after a while, but you could probably configure it to stay connected like a bouncer |
23:50 |
Izaya |
XMPP certainly does have issues, the lack of good desktop clients being the most obvious one. |
23:50 |
MTDiscord |
<Benrob0329> Nah, XMPP has decent desktop clients |
23:51 |
MTDiscord |
<Benrob0329> XMPP just lacks decent cohesion and library access for a wide amount of mature clients |
23:51 |
Izaya |
Gajim is a mess with performance issues, Dino is ... limited, and Psi(+) doesn't support OMEMO |
23:52 |
MTDiscord |
<Benrob0329> I've had good luck with both Gajim (modern Gajim, not old Gajim) and Dino |
23:52 |
MTDiscord |
<Benrob0329> Yes Dino lacks some of the advanced stuff but for general usage it's more than enough |
23:52 |
Izaya |
Gajim is also skipping the whole standards thing of late. Very frustrating. |
23:53 |
MTDiscord |
<Benrob0329> To be fair, XMPP can't even decide which standards to use sometimes |
23:53 |
MTDiscord |
<Benrob0329> I mean, just getting an avatar to work on an MUC is..fun |
23:53 |
Izaya |
it's one thing to have too many standards, it's another to not bother :p |
23:53 |
MTDiscord |
<Benrob0329> there are two ways to do it and they both suck and the solution is a whole new MUC protocol |
23:53 |
MTDiscord |
<Benrob0329> which exists and isn't widely used |