Time |
Nick |
Message |
00:02 |
|
Extex joined #minetest-dev |
02:28 |
|
queria^clone joined #minetest-dev |
02:33 |
|
queria^clone joined #minetest-dev |
03:28 |
|
Extex joined #minetest-dev |
04:00 |
|
MTDiscord joined #minetest-dev |
05:34 |
|
ivanbu joined #minetest-dev |
06:37 |
|
queria^clone joined #minetest-dev |
07:17 |
|
specing joined #minetest-dev |
08:41 |
|
olliy joined #minetest-dev |
10:00 |
|
calcul0n joined #minetest-dev |
11:11 |
|
specing joined #minetest-dev |
12:08 |
|
queria joined #minetest-dev |
12:17 |
|
proller joined #minetest-dev |
13:47 |
|
Fixer joined #minetest-dev |
14:34 |
|
kilbith joined #minetest-dev |
14:35 |
kilbith |
I'd like https://github.com/minetest/minetest/pull/11498 and https://github.com/minetest/minetest/pull/10100 to be combined |
14:54 |
erlehmann |
why make a big PR even bigger |
15:30 |
rubenwardy |
god that would be such a pain to review |
15:30 |
rubenwardy |
> There is a demo mod which creates 291 nodes covering edge cases |
15:33 |
rubenwardy |
!seen nore |
15:33 |
ShadowBot |
rubenwardy: I haven't seen nore in #minetest-dev. |
15:33 |
rubenwardy |
:( stuck on leenode? |
15:35 |
sfan5 |
ShadowBot is just wrong, they've been here on 1st Sep |
15:35 |
ShadowBot |
sfan5: Error: You must be registered to use this command. If you are already registered, you must either identify (using the identify command) or add a hostmask matching your current hostmask (using the "hostmask add" command). |
15:35 |
|
kilbith joined #minetest-dev |
15:37 |
|
longerstaff13 joined #minetest-dev |
15:50 |
erlehmann |
my personal experience: the bigger the PR, the longer it takes. the smaller the PR, the more ppl ridicule the reviewer for checking “what should be obvious”. |
15:50 |
erlehmann |
i had this last night again, regarding a possible coordinate exploit |
15:51 |
MTDiscord |
<luatic> I would really like it if we could stop with the current crappy texmod format and switch to a simpler cleaner one |
15:51 |
erlehmann |
“stop” i.e. you wanna break all mods? or you want to not extend that hellish thing anymore? |
15:52 |
MTDiscord |
<luatic> I want to not extend it |
15:52 |
erlehmann |
i had to write my own escape function because the texture sucks so much |
15:52 |
erlehmann |
luatic hmm but why not wrap it and that's it? |
15:52 |
MTDiscord |
<luatic> Keeping the hellish things we already have is fine by me, but I don't see why we should keep adding texture modifiers |
15:52 |
MTDiscord |
<luatic> wrap it? |
15:52 |
MTDiscord |
<luatic> WDYM by that? |
15:52 |
erlehmann |
wait, i look for a code example |
15:52 |
erlehmann |
ah no, i won't |
15:52 |
erlehmann |
by wrapping i mean, make a function that returns something modified |
15:53 |
erlehmann |
then you can combine all the stuff |
15:53 |
MTDiscord |
<luatic> yeah, I do suggest that |
15:53 |
erlehmann |
and you can still extend the crappy format |
15:53 |
erlehmann |
just make it required to add a function each time |
15:53 |
MTDiscord |
<luatic> umm.. I don't see the point though |
15:53 |
erlehmann |
backwards compatiblity and ease of doing it basically |
15:53 |
erlehmann |
i mean it would be just some additional lua functions |
15:54 |
|
Extex joined #minetest-dev |
15:54 |
MTDiscord |
<luatic> yeah I know |
15:54 |
MTDiscord |
<luatic> but still the format sucks |
15:55 |
MTDiscord |
<luatic> see #11588 |
15:55 |
ShadowBot |
https://github.com/minetest/minetest/issues/11588 -- Proper syntax for texture modifiers, Lua utilities |
15:55 |
erlehmann |
while that is true, i fail to see why that would be an argument against “wrap all the stuff” |
15:55 |
MTDiscord |
<luatic> it is not, we should create wrappers so we can swap out the underlying representation at any time |
15:55 |
erlehmann |
> I'm not even quite sure whether a context-free grammar can recognize them, and the parsers sure are a mess of string manipulation (and thus a security vulnerability; I've already seen buffer read overflows). |
15:56 |
erlehmann |
lol |
15:56 |
erlehmann |
i guess the first order of business could be to infer an actual grammar |
15:56 |
MTDiscord |
<luatic> yeah, that's what I was up to |
15:56 |
erlehmann |
> I'm also pretty sure parsing isn't even guaranteed to be linear due to this. |
15:56 |
MTDiscord |
<luatic> but oh boy, I'm pretty sure the way escapes work requires some kind of context |
15:57 |
erlehmann |
well i guess appgurueu has read the LANGSEC stuff or has very good intuitions |
15:57 |
MTDiscord |
<luatic> lol I am appgurueu |
15:57 |
MTDiscord |
<luatic> I haven't really read that stuff but I did get to the "non regular or context free bad" part |
15:57 |
erlehmann |
then tell me if you have read the papers :D |
15:57 |
MTDiscord |
<luatic> And I do know grammars well soo... |
15:58 |
MTDiscord |
<luatic> non (regular or context-free) bad that is :P |
15:58 |
erlehmann |
yeah that is actually superseded by a later thing, in 2017 or so ppl found that calc-regular (i.e. regular + length field prefix) can also be safe |
15:58 |
MTDiscord |
<luatic> I actually quite like the length field, it's quite efficient |
15:58 |
erlehmann |
which is hilarious, because that means before that result everyone was using length fields with no good justification whatsoever |
15:59 |
MTDiscord |
<luatic> Umm well, the justification is that it means you don't really need escaping |
15:59 |
MTDiscord |
<luatic> There are various ways of delimiting block scope |
15:59 |
MTDiscord |
<luatic> There's delimiters, duh |
15:59 |
erlehmann |
i mean the tools did not exist that parsing it is sound |
15:59 |
erlehmann |
to prove that |
15:59 |
MTDiscord |
<luatic> those are pretty much a constant factor, but they incur escaping |
16:00 |
kilbith |
@luatic what happened to https://github.com/minetest/minetest/pull/10570 ? |
16:00 |
MTDiscord |
<luatic> depending on how cleverly you escape you can get to about worst case square root escaping overhead for instance using Lua's long strings |
16:00 |
MTDiscord |
<luatic> I forgot |
16:01 |
kilbith |
that's a pity, the usecases are big |
16:01 |
erlehmann |
btw i have had a thing where if i fall very fast and disable fall damage the server (5.4.1) and client 5.5-dev desync after impact |
16:01 |
MTDiscord |
<luatic> what |
16:01 |
MTDiscord |
<luatic> the client should not cease sending position updates |
16:02 |
MTDiscord |
<luatic> maybe the client wrongly reports it's death? |
16:02 |
erlehmann |
basically anticheat seems to think i am somewhere else then and rubberband me whenever i interact with a node, anyone else experience this? |
16:02 |
erlehmann |
oh hmm |
16:02 |
MTDiscord |
<luatic> anyways, TL;DR: I'm pretty sure length prefix is about the most efficient way of enclosing something. |
16:02 |
erlehmann |
can the client actually report its death if fall damage is disabled? |
16:02 |
MTDiscord |
<luatic> Minetest's exponential escapes are about the most INEFFICIENT way |
16:02 |
MTDiscord |
<luatic> does the client know fall damage is disabled? |
16:03 |
erlehmann |
luatic “i am pretty sure” is not a good standard, but i agree with escaping bad |
16:03 |
erlehmann |
well i disabled it in the client, so *i am pretty sure* ;) |
16:03 |
MTDiscord |
<luatic> Well, a length prefix is logarithmic, good luck beating that |
16:04 |
erlehmann |
luatic in client.cpp look for sendDamage and just make the line before say “if (false)” or so |
16:04 |
erlehmann |
fall damage is calculated and sent by the client for reasons |
16:04 |
MTDiscord |
<luatic> I know |
16:05 |
erlehmann |
btw, that is another use of a hack client: i once encountered a little kid who waited until ppl logged out, then removed the ground under them |
16:05 |
erlehmann |
so now i often join with fly enabled and fall damage off because i hate such things |
16:06 |
MTDiscord |
<luatic> So is WS a parody of DF in the end? |
16:06 |
erlehmann |
dragon fire destroys things |
16:06 |
MTDiscord |
<GreenXenith> Thought it was a fork |
16:06 |
erlehmann |
wasp saliva is used to build stuff |
16:06 |
MTDiscord |
<luatic> Darn, I really gotta make my own cheat client |
16:07 |
MTDiscord |
<luatic> I'm gonna call it "swinetest" |
16:07 |
|
kilbith joined #minetest-dev |
16:07 |
MTDiscord |
<GreenXenith> Heh, a cheat client is a cheat client. What its used for is entirely up to the user. |
16:07 |
erlehmann |
have you ever heard the story of darth fleckenstein the wise? it is not a story the minetest devs would tell you … bla bla … he could cheat others, but not himself! |
16:08 |
erlehmann |
GreenXenith, yes there are pretty cool build hax that border on worldedit |
16:09 |
MTDiscord |
<GreenXenith> Oh, there are literal building features in WS. Interesting |
16:09 |
erlehmann |
with the exception that it lags a lot if you dig or place a buch of stuff |
16:09 |
erlehmann |
yes |
16:09 |
erlehmann |
i still think the coolest is the “place the thing i have selected on top of every node of the same type in reach” |
16:10 |
MTDiscord |
<luatic> Can it place schematics too? |
16:10 |
MTDiscord |
<luatic> so that allows you to start with a Grundriss and then build up? |
16:10 |
erlehmann |
yes |
16:10 |
erlehmann |
ja! |
16:10 |
MTDiscord |
<luatic> Fein! |
16:11 |
erlehmann |
it can place things, but i think not in the schematics format |
16:11 |
MTDiscord |
<luatic> well, the schematic format sucks arguably :) |
16:11 |
erlehmann |
cora has literally copied a space station from a server to another |
16:12 |
MTDiscord |
<luatic> but you do need to have all the blocks, right? |
16:13 |
erlehmann |
either that or something like /setblock or /give ofc |
16:13 |
MTDiscord |
<luatic> oof, those merge conflicts are really hard to resolve |
16:15 |
erlehmann |
luatic come on you can just dupe the blocks once you have a single one |
16:15 |
erlehmann |
(if you find a dupe lol) |
16:17 |
MTDiscord |
<luatic> I hope we have closed all dupes |
16:17 |
erlehmann |
yes of course you have! |
16:17 |
MTDiscord |
<luatic> hehe |
16:18 |
erlehmann |
you wouldn't dupe a diamond block |
16:19 |
erlehmann |
duping is literally unauthorized duplication and distribution of copyrighted materials! (such as default:diamondblock) |
16:20 |
MTDiscord |
<Jonathon> if you have the anvil mod and a tool from a mod that doesnt return properly you can dupe tools |
16:21 |
erlehmann |
Jonathon the name of the mod is literally anvil? |
16:22 |
erlehmann |
; minetest-servers mods |grep anvil |cut -f2 |sort |uniq |
16:22 |
erlehmann |
anvil |
16:22 |
erlehmann |
anvils |
16:22 |
erlehmann |
mcl_anvils |
16:22 |
erlehmann |
which one is it |
16:27 |
erlehmann |
luatic have you started with texture modifier functions? |
16:30 |
sfan5 |
<luatic> Minetest's exponential escapes are about the most INEFFICIENT way |
16:30 |
sfan5 |
how often do you ever need to escape anything twice? |
16:30 |
sfan5 |
like, what's the usecase |
16:33 |
erlehmann |
in mcl_banners in mineclonia i put |
16:33 |
erlehmann |
function escape(text) |
16:33 |
erlehmann |
return text:gsub("%^", "\\%^"):gsub(":", "\\:") -- :gsub("%(", "\\%("):gsub("%)", "\\%)") |
16:33 |
erlehmann |
finished_banner = "[combine:32x32:0,0=" .. escape(base) .. ":8,4=" .. escape(layer) |
16:33 |
erlehmann |
here i used escape twice |
16:34 |
erlehmann |
but if you want nested, i could use escape(escape(foo)) i think? |
16:34 |
erlehmann |
is that escape function even correct lol |
16:36 |
sfan5 |
by twice I meant nested |
16:40 |
erlehmann |
well imagine you had a banner on your banner? |
16:40 |
erlehmann |
no idea really though |
16:55 |
|
Fixer_ joined #minetest-dev |
17:25 |
sfan5 |
? |
17:47 |
pgimeno |
if we don't have a terminal velocity for falling, we need one |
17:48 |
pgimeno |
as for exponential escapes, well, C has them |
17:50 |
pgimeno |
I wrote a sort of essay here (in Spanish): https://orden-y-concierto.blogspot.de/2009/12/escape-del-escape-del-escape.html |
18:19 |
|
Pexin joined #minetest-dev |
19:16 |
|
specing joined #minetest-dev |
19:38 |
MTDiscord |
<luatic> sfan5: it's just a worst-case complexity argument; the way escaping currently works, depth n might require 2^n escape characters |
19:39 |
MTDiscord |
<luatic> this is currently not much of an issue as most modifiers are just a chain baseimg^[mod^[mod... |
19:42 |
|
proller joined #minetest-dev |
20:07 |
|
longerstaff13 joined #minetest-dev |
20:07 |
|
Extex joined #minetest-dev |
20:26 |
|
ssieb joined #minetest-dev |
20:38 |
|
proller joined #minetest-dev |
20:39 |
|
adfeno joined #minetest-dev |
20:57 |
|
proller joined #minetest-dev |
22:33 |
|
proller joined #minetest-dev |
22:36 |
|
Pexin joined #minetest-dev |
22:39 |
|
erlehmann joined #minetest-dev |
22:55 |
sfan5 |
an 2^n solution is acceptable if n is only ever < 2 |
22:55 |
sfan5 |
hence my question what usecase do have that has n>=2 |
23:14 |
erlehmann |
if you think it should be impossible you should make it unrepresentable (and prove it will not break any mods on contentdb) |
23:17 |
erlehmann |
sfan5 can i force a compile without zstd? it makes switching between branches hard if i have a test world |
23:29 |
erlehmann |
luatic so i built the appguru:item_rtt branch for this PR https://github.com/minetest/minetest/pull/10570 and i noticed a few things: first, that branch is very old. second, i found noticeable lag between picking up a new node and the inventory image being rendered. third, the mineclonia player model had its head backwards, but maybe that is just because the branch is very old? |
23:30 |
erlehmann |
i will double-check that none of that occurs in 5.5-dev now |
23:30 |
erlehmann |
though i am pretty sure i would have noticed it |
23:30 |
erlehmann |
i also got a segfault, no idea why. i rarely get those. |
23:33 |
erlehmann |
[89878.146141] Emerge-0[24369]: segfault at f522dc3c ip 00ae8923 sp 9a081ab0 error 7 in minetest[56d000+66a000] |
23:33 |
erlehmann |
[89878.146174] Code: c0 29 d6 0f b7 54 24 02 09 c1 8d 44 24 0c 89 4c 24 18 8d 4c 24 18 66 89 54 24 1c 8b 54 24 40 01 ee e8 11 fe ff ff 8b 4c 24 0c <89> 0c b7 03 73 1c 80 26 fd c6 43 20 01 83 c4 2c 5b 5e 5f 5d c3 8d |
23:33 |
erlehmann |
whatever that means |