Time |
Nick |
Message |
00:01 |
|
nm0i joined #minetest |
00:04 |
|
nm0i joined #minetest |
00:25 |
|
Lesha_Vel joined #minetest |
01:00 |
|
Niklp joined #minetest |
01:00 |
|
smk joined #minetest |
01:25 |
|
YuGiOhJCJ joined #minetest |
01:53 |
|
MTDiscord joined #minetest |
02:50 |
|
v-rob joined #minetest |
03:09 |
|
amfl2 joined #minetest |
03:19 |
|
fluxionary_ joined #minetest |
03:52 |
|
Talkless joined #minetest |
03:54 |
hare_hare_yukai |
imagine a parody called MeinKraft |
03:54 |
hare_hare_yukai |
with germany and nazi memes |
03:54 |
hare_hare_yukai |
that would be funny eh lissobone? |
04:00 |
|
MTDiscord joined #minetest |
04:00 |
[MTMatrix] |
<Blockhead256> https://www.youtube.com/watch?v=-1yzoiUIGGs |
04:01 |
hare_hare_yukai |
https://vndb.org/v7316 |
04:01 |
hare_hare_yukai |
https://vndb.org/v19616 |
04:24 |
|
vampirefrog joined #minetest |
04:49 |
hare_hare_yukai |
https://files.catbox.moe/y3y8vx.png |
05:34 |
|
TheCoffeMaker joined #minetest |
05:51 |
|
TomTom joined #minetest |
05:59 |
|
fling joined #minetest |
06:07 |
|
v-rob joined #minetest |
06:11 |
|
mrkubax10 joined #minetest |
06:22 |
|
TheCoffeMaker joined #minetest |
06:46 |
|
calcul0n joined #minetest |
07:01 |
|
sid0 joined #minetest |
07:16 |
|
Alnotz joined #minetest |
07:56 |
|
TheCoffeMaker joined #minetest |
08:16 |
|
syl joined #minetest |
08:49 |
|
appguru joined #minetest |
08:54 |
|
appguru joined #minetest |
08:55 |
|
mrkubax10 joined #minetest |
09:32 |
|
calcul0n joined #minetest |
09:38 |
|
TheCoffeMaker joined #minetest |
09:50 |
|
TheCoffeMaker joined #minetest |
10:07 |
|
TheCoffeMaker joined #minetest |
10:24 |
|
TheCoffeMaker joined #minetest |
10:32 |
|
s20 joined #minetest |
10:47 |
|
TheCoffeMaker joined #minetest |
11:05 |
|
TheCoffeMaker joined #minetest |
11:23 |
|
calcul0n joined #minetest |
11:46 |
|
Zambyte joined #minetest |
12:09 |
|
Trifton_ joined #minetest |
12:14 |
|
appguru joined #minetest |
12:21 |
erle |
luatic did you file the bad apple thing as a bug? |
12:50 |
|
definitelya joined #minetest |
12:58 |
|
calcul0n joined #minetest |
13:29 |
MTDiscord |
<luatic> no, but i may in about 2 days |
13:30 |
|
appguru joined #minetest |
13:41 |
|
calcul0n_ joined #minetest |
13:47 |
|
Sobinec joined #minetest |
13:53 |
|
fling joined #minetest |
13:53 |
erle |
luatic when enough dirt has accumulated? :D |
14:10 |
MTDiscord |
<luatic> erle: hehe |
14:10 |
MTDiscord |
<luatic> currently the memory doesn't like me (it segfaults) |
14:11 |
MTDiscord |
<luatic> will make it easier to report though, i suppose |
14:14 |
erle |
luatic what do you mean |
14:14 |
erle |
luatic have you tried using ubsan or asan |
14:14 |
erle |
or tsan or msan |
14:14 |
MTDiscord |
<luatic> i haven't, but i will probably |
14:15 |
MTDiscord |
<luatic> is there something like a compiler line you could drop me with all the sanitizers enabled? :D |
14:15 |
erle |
no, because that is a stupid thing to do |
14:16 |
MTDiscord |
<luatic> why? performance? |
14:16 |
|
e1z0 joined #minetest |
14:17 |
erle |
https://lists.llvm.org/pipermail/llvm-dev/2016-March/097144.html |
14:18 |
erle |
luatic i suggest to read up on how the sanitizers work and you will probably figure it out yourself |
14:19 |
erle |
it will also help you to interpret the output correctly |
14:19 |
MTDiscord |
<luatic> I have a feeling that sanitizers are implemented poorly |
14:20 |
erle |
is your spidersense telling you that? |
14:20 |
MTDiscord |
<luatic> yes, it's tingling |
14:20 |
MTDiscord |
<luatic> like i imagine i could write an interpreter for C which checks for all of these with maybe a ~10x interpretation overhead |
14:21 |
erle |
in interpreter for C, curious |
14:21 |
erle |
C, the famously interpreted language |
14:21 |
MTDiscord |
<luatic> i've also seen detectable illegal behavior in zig and it doesn't make me choose between detecting some illegal behavior or detecting other illegal behavior |
14:22 |
MTDiscord |
<luatic> so this seems like a shortcoming so far and i'm not sure what induces it; i will have to read up on it |
14:22 |
erle |
what's detectable illegal behaviour? |
14:24 |
MTDiscord |
<luatic> stuff that usually is just undefined behavior in C, but which in zig debug builds is well, detectable |
14:24 |
MTDiscord |
<luatic> such as accessing an inactive variant of a union |
14:26 |
erle |
look just start with ubsan right? |
14:27 |
MTDiscord |
<luatic> ok |
14:27 |
MTDiscord |
<luatic> still i will look into how sanitizers work and whether it could be done better ;) |
14:27 |
MTDiscord |
<luatic> the "red zone" approach for example seems pretty rudimentary to me |
14:27 |
erle |
how would you do it |
14:29 |
MTDiscord |
<luatic> i'd roughly attach metadata (such as array bounds) to pointers, and then do bounds checks; propagating the metadata may prove tricky however |
14:31 |
erle |
is that a thing you actually plan to do or is it about as real as SSCSMs? :P |
14:31 |
|
appguru joined #minetest |
14:33 |
erle |
i should probably add “progress is not possible without SSCSMs” to my list of common noob utterings hehe :D |
14:33 |
MTDiscord |
<luatic> about as real as SSCSMs |
14:33 |
lissobone |
I want to add an audiochat to minetest. |
14:34 |
MTDiscord |
<luatic> erle: it's imo pretty true, though; if we want to grow up to be a real game engine, we need a fully scriptable client, and that can only be achieved well with SSCSMs |
14:34 |
erle |
lissobone use mumble + 3d position CSM ig |
14:35 |
MTDiscord |
<luatic> i considered writing snake in LÖVE and Minetest just to drive this point home, but after writing it in LÖVE in ~1h (mind you, i had not used LÖVE before), i had absolutely zero motivation to do it in Minetest too |
14:36 |
erle |
try writing snake in svg |
14:36 |
MTDiscord |
<luatic> it would have been possible somewhat half-janky using HUDs / dynamic media / nodes / whatever, but it would've been much more work yet much more jank - simply strictly suboptimal for this simple purely clientside game! |
14:36 |
MTDiscord |
<luatic> erle: is svg turing-complete, or would i have to hardcode an obscene number of possible game states or abuse obscure features that are suspiciously useful for implement snake? |
14:38 |
erle |
no idea |
14:38 |
erle |
look at the source of this https://upload.wikimedia.org/wikipedia/commons/4/44/Balance_puzzle_SMIL.svg |
14:39 |
erle |
or this lol https://upload.wikimedia.org/wikipedia/commons/4/4d/Subtraction_game_SMIL.svg |
14:40 |
MTDiscord |
<luatic> lol |
14:40 |
erle |
or this https://upload.wikimedia.org/wikipedia/commons/9/9b/SMIL_missile_demo.svg |
14:41 |
erle |
i think “we need client side scripting” is not necessarily web developer brainrot, but surely inspired by it :P |
14:42 |
erle |
you can do a lot without turing-complete input languages |
14:42 |
MTDiscord |
<luatic> the rockets are not randomized... |
14:43 |
MTDiscord |
<luatic> erle: it's generally more work though |
14:43 |
erle |
surprise, not taking the ”everything turing complete” escape hatch is work |
14:43 |
erle |
compare websites that have CSS layout with websites that do layout in JS |
14:43 |
erle |
i mean, the latter are slow on every computer |
14:43 |
erle |
no amount of CPU is going to beat accidentally quadratic bullshit |
14:43 |
MTDiscord |
<luatic> yes, what should this work be made for? for security, it imo suffices to just (1) use a safe interpreter (write a simple scheme yourself if necessary); (2) validate all API calls very strictly |
14:44 |
rubenwardy |
CSS layouting is done by a turing complete language |
14:44 |
erle |
have you read the seven turrets of babel? |
14:44 |
erle |
if not, read it |
14:44 |
erle |
it's about turing complete *input languages* |
14:44 |
rubenwardy |
also, CSS is turing complete |
14:44 |
erle |
rubenwardy show and tell? |
14:45 |
erle |
i saw that claim repeated, but i think it needs a turing complete user |
14:45 |
MTDiscord |
<luatic> i definitely wouldn't bet on CSS layouting being linear |
14:45 |
MTDiscord |
<luatic> (linear time) |
14:45 |
MTDiscord |
<luatic> it's also much more intransparent than if i write code myself |
14:45 |
erle |
lol |
14:45 |
erle |
as olialina explained in her essay, a lot of systems become more powerful with a turing complete user |
14:46 |
MTDiscord |
<luatic> i have to trust the CSS layouting algo to be decent, whereas if i write imperative code myself i can ensure my algo is decent |
14:46 |
MTDiscord |
<luatic> yeah, SSCSMs would give modders a lot of power |
14:46 |
MTDiscord |
<luatic> many of them, esp. the noobs, won't wield this properly, but that is not a reason to not give it to the experienced modders :) |
14:46 |
erle |
lol |
14:47 |
erle |
“surely i am pure and will not abuse this power, or write code that runs on my computer, but not on a slower one” |
14:47 |
MTDiscord |
<luatic> indeed i am renowned for being the perfect programmer; it is virtually impossible that i write suboptimal code /s |
14:48 |
erle |
great, can you write my code too? |
14:48 |
MTDiscord |
<luatic> erle: if it's interesting enough, maybe |
14:48 |
erle |
anyways, i have yet to see CSM code that is both very useful and would be sent by a server |
14:48 |
MTDiscord |
<luatic> part of the problem is that our CSM API is shit |
14:48 |
erle |
i think lizzys server ticks thing is probably the only one i can remember |
14:48 |
|
jaca122 joined #minetest |
14:48 |
erle |
and that one can very simply be added to the client |
14:49 |
MTDiscord |
<luatic> as for "would be sent by a server": that's just for convenience so that we can continue our model of "you can just connect to servers and it works" |
14:49 |
rubenwardy |
see https://github.com/minetest/minetest/issues/8057 |
14:49 |
erle |
luatic you know that it results in “you have to run this CSM or you are not allowed on this server” and then the CSM starts mining bitcoins or other room-heating activities |
14:50 |
MTDiscord |
<luatic> i wonder whether i would be able to write a safe lua interpreter |
14:50 |
MTDiscord |
<luatic> most probably not, but lua 5.1 is small enough that there's a tiny chance that it could work |
14:50 |
erle |
the thing most often suggested is predicting movement client-side and i am pretty sure other engines just send like, a path to follow or so |
14:50 |
MTDiscord |
<luatic> erle: mining bitcoins is legit CSM behavior imo :) |
14:50 |
erle |
which btw minetest could also do |
14:50 |
celeron55 |
erle: just like websites do? wait, none of them do, of the ones you actually want to use |
14:51 |
erle |
celeron55 pretty sure that ”displaying obnovious ads” is also a thing that heats up my computer and makes it slow. i can not watch youtube videos on youtube on the thing i am writing from, but i can watch them on invidious or download them using youtube-dl and use mplayer. |
14:52 |
erle |
like, the computer is obviously fast enough to display videos, but the youtube bullshit makes it crawl to a halt |
14:52 |
MTDiscord |
<luatic> erle: The "engines" / "frameworks" (besides Minetest) I've used so far let you write client and server yourself. |
14:54 |
MTDiscord |
<luatic> The default "mode of operation" for most actual engines I've seen is "you build a client-side game". You can add a server to that later on if you wish. |
14:54 |
erle |
is that all web stuff? |
14:55 |
MTDiscord |
<luatic> no, I'm mostly thinking Pygame, LÖVE here |
14:55 |
celeron55 |
i still see it as a valid path in my mind to limit SSCSM into very small lua environments with very limited interfaces, only to allow doing stuff like vehicle specific physics and let's say custom 2D visuals or some such, which are then triggered by messages from the server |
14:55 |
celeron55 |
i think everyone should consider this option |
14:55 |
MTDiscord |
<luatic> Looking at perhaps the closest thing to Minetest - Roblox, which also does servers and clients for you - they also have client side scripting. |
14:55 |
erle |
celeron55 the thing is, if it is that limited, then i'm pretty sure there is nicer solution |
14:56 |
MTDiscord |
<luatic> (I don't know much about Roblox though. It's just that Roblox kids are a frequent occurrence on Lua forums now.) |
14:56 |
celeron55 |
erle: the only way you can prove it is to design it yourself |
14:56 |
MTDiscord |
<luatic> erle: well, it isn't that limited; we don't know what people want or will want to do with Minetest |
14:56 |
celeron55 |
erle: no other engine faces the same challenge as MT does. they all run game specific code on the client for these purposes |
14:57 |
MTDiscord |
<luatic> this ^ |
14:57 |
erle |
i don't know everything about openRA but i am pretty sure they have a declarative format of “traits” that are specified in an engine-version |
14:58 |
MTDiscord |
<luatic> Minetest's "the client is a sockpuppet of the server except for hardcoded features" is pretty unique in the engine space, I think |
14:58 |
celeron55 |
erle: i'm pretty sure if you make a game in openRA, you have to have a specific client build of it in order to play |
14:59 |
erle |
yeah, like with minetest |
14:59 |
erle |
not? |
14:59 |
erle |
the client has to understand the specific traits |
14:59 |
erle |
maybe i am wrong here, but i mean like “what kind of order can i give to this unit” |
15:00 |
celeron55 |
if you make the traits flexible enough, you essentially end up with tiny lua scripts |
15:00 |
celeron55 |
that is what i am proposing |
15:00 |
celeron55 |
make traits that are definable as small scripts |
15:00 |
MTDiscord |
<luatic> here's another thing i wanted to run on the client: character animations; they're much jankier if serverside |
15:00 |
celeron55 |
and send them as such over to the client |
15:01 |
erle |
celeron55 the traits are more like “which hardcoded attack behaviour is used” or “can this unit teleport” or “which cursor is displayed when hovering over a valid target” https://docs.openra.net/en/release/traits/ |
15:01 |
MTDiscord |
<luatic> CSMs may also allow offloading rendering work to the client. Consider your last mod, erle: It shouldn't be the server's business to render the text to a texture. Ideally the server could just send the text, and tell the client to render it. With a SSCSM, that would be possible. |
15:01 |
erle |
it turns out that the traits in openra are amazingly flexible, as in that some mods are just a bunch of yaml files and assets and totally change gameplay |
15:02 |
celeron55 |
totally change gameplay? i don't believe that |
15:02 |
erle |
like, i implemented a submarine for example once |
15:02 |
rubenwardy |
SSCSM combined with a new GUI/rendering API would allow for a wide range of possibiliities for GUIs |
15:02 |
celeron55 |
that's not a total change in gameplay |
15:02 |
erle |
by making an “activate” action and changing the activated state |
15:02 |
erle |
so that the submarine is underwater (different texture) |
15:02 |
celeron55 |
if you make a first person shooter or a visual novel with 3d animations in OpenRA, then i believe you |
15:02 |
erle |
and in that state it has different detection capabilities and is invisible |
15:03 |
celeron55 |
or at least a platformer |
15:03 |
erle |
i concede and assert the opposite, a non-total change in gameplay |
15:03 |
MTDiscord |
<luatic> first person shooters are a good example; they need much custom logic, and you want instant responses (client prediction) because everything tends to go fast in these |
15:03 |
erle |
yeah so if i go along with your point, why is there no main menu CSM tab? |
15:03 |
erle |
i mean that would at least be a starting point |
15:03 |
erle |
to expose it to more users |
15:04 |
MTDiscord |
<luatic> last time i tried to make a weapon mod i was fed up by even basically trivial things such as achieving a square HUD image with a scale relative to screensize being impossible |
15:04 |
erle |
also CSMs on CDB when lol |
15:04 |
rubenwardy |
because we want sscsm not csm |
15:04 |
erle |
rubenwardy ah, the users do not own their computronium! |
15:04 |
erle |
:D |
15:04 |
celeron55 |
i propose deleting the current CSM and beginning from scratch, to only allow SSCSM in small environments |
15:05 |
erle |
i do not see how SSCSM without an intermediate step of first-class CSMs can be viable, unless the wisdom of “how to design a CSM API well” falls from the sky somehow |
15:05 |
celeron55 |
i can design all the apis, that's a total non-issue 8) but i won't implement it |
15:06 |
erle |
celeron55 so why not expand the CSM API with downloadable CSMs from CDB and see what is actually used? |
15:06 |
erle |
like “movement prediction CSM” or so |
15:06 |
celeron55 |
because i think the current CSM API has a too large attack surface to be used for SSCSM without process level sandboxing |
15:06 |
MTDiscord |
<luatic> that's turee |
15:06 |
MTDiscord |
<luatic> throw it out the window |
15:06 |
celeron55 |
i want to either get rid of it, or to have process level sandboxing |
15:06 |
celeron55 |
only two options |
15:06 |
erle |
i mean web browsers do it |
15:07 |
erle |
stuff like <video> or <details> was added after flash or javascript added that |
15:07 |
celeron55 |
CDB CSMs are not an option to me, it goes against the core point of MT |
15:07 |
erle |
celeron55 sandboxing as in ”script can not affect the local environment” ? |
15:07 |
celeron55 |
if everybody insist on them and they are implement, i'll let it pass, but i will not help |
15:07 |
celeron55 |
implemented* |
15:07 |
erle |
well CSMs have so far been used for a bunch of non-cheaty purposes. like encrypted chat messages (which are obviously not possible securely if the server can just replace the CSM) |
15:08 |
erle |
or the thing where you see if someone targets you (by examining the view direction and figuring out if it intersects you hehe) |
15:09 |
erle |
or building without cheating yourself the materials, i.e. you have all the cobble and so on and already made the blueprints |
15:09 |
celeron55 |
leaving CSMs to be CSMs is fine to me also. but then people have to learn to distinguish between CSM and the-other-thing (let's call it programmable traits, or some such) |
15:13 |
celeron55 |
i have made a proof of concept of this, it's here https://github.com/minetest/minetest/compare/master...celeron55:minetest:client_player_physics_script |
15:15 |
|
appguru joined #minetest |
15:16 |
celeron55 |
as you can tell, i am not in a hurry |
15:18 |
erle |
celeron55 i see, it is for controlling, not only for prediction |
15:18 |
celeron55 |
well that is only the player physics trait, if you let my borrow that term from you |
15:19 |
celeron55 |
you obviously want to have the direct player input at your disposal, to get fast feedback to the player |
15:19 |
celeron55 |
me* |
15:20 |
erle |
the openra way here would probably be to preload the engine wtih a bunch of heavily-tested traits and only allow the server to specify which one |
15:20 |
celeron55 |
but there would be similar mini environments for some sort of hud stuff, and animations, or however we would happend to decide on allocating the apis |
15:21 |
erle |
with physics in particular i do wonder though what pitfalls exist for implementing this horribly |
15:21 |
celeron55 |
maybe one for dynamic sound generation |
15:21 |
celeron55 |
not sure what they would be, but that's the concept |
15:21 |
erle |
that one is easy, you have a tight instruction budget, no branching and your code has to deliver one sample (or a bunch of them) per time unit. like shaders. |
15:22 |
erle |
“easy” as in, easy to conceptually make it not very powerful for any other purpose than you want to have it |
15:22 |
erle |
i.e. lock it down |
15:22 |
MTDiscord |
<fatalisterror> What about sscsm? |
15:22 |
erle |
i have to go. i'll be back in a few days ig |
15:22 |
celeron55 |
shaders do have branching |
15:23 |
celeron55 |
and if you want to disallow loops, you also have to disallow functions to avoid infinite recursion and such. i am open to discussing about that and figuring out a way to do it |
15:23 |
erle |
sorry, i thought of no unconstraint loooping |
15:24 |
erle |
branching is easy because you can employ math trickery anyway |
15:24 |
celeron55 |
maybe lua isn't the right choice and a less flexible language would have to be used |
15:24 |
erle |
regarding loops: on the hardware i use (intel GPU) all loops are unrolled lol |
15:24 |
erle |
in shaders |
15:24 |
erle |
which kinda makes sense, given there is an instruction budged |
15:26 |
celeron55 |
the thing about these is, they wouldn't be run in any process sandbox or even a separate thread, which means they truly can block execution and ruin your day, if they have the capability to do so. if lua was used, then using threads would probably be required, in order to be able to catch infinite loops and stop them |
15:26 |
celeron55 |
however if they run in a thread, you get additional delay |
15:26 |
erle |
“be able to catch infinite loops and stop them” |
15:27 |
celeron55 |
i would like it if they were synchronous and instantious. it would make them simple and provide instant feedback to the player, not some thread-delayed buffered feedback |
15:27 |
erle |
i should re-read on computable numbers, with an application to the entscheidungsproblem |
15:27 |
erle |
i think it would probably be a good idea to figure out how other engines do it |
15:27 |
celeron55 |
there is no other engine with this problem like i already said, you will not find good examples |
15:28 |
celeron55 |
minetest is completely novel in this aspect |
15:28 |
celeron55 |
we're literally making an invention here, have been for a long time already |
15:28 |
erle |
i am pretty sure i have seen a lot of roguelike stuff that is just dumb terminals, but i also think it does not count |
15:29 |
erle |
anyway, i have to get that TGA stuff fixed first before i commit to anything else. because it can not stay insecure. also i have to go. was nice chatting, see ya in a few days! |
15:29 |
celeron55 |
(and as with most inventions, we'll probably be dead by the time the invention actually gets widespread use) |
15:30 |
erle |
the most things i want out of minetest is a) keep running on whatever computers i have that it already runs on b) not break my mods |
15:30 |
erle |
feature-wise i'm probably happier than most, because i am a slob |
15:30 |
erle |
my legos also don't have shaders |
15:35 |
MTDiscord |
<fatalisterror> SSCSM would absolutely change gameplay celeron55. Vehicles? My mod, for example, 4dguns being perfectly smooth? If we had access to camera matrix we literally could have full control over the camera with perfect smoothness. If we added sscsms with an entity API (which likely wouldnt be difficult), it would absolutely change gameplay. I agree by itself it doesnt do a lot, but the lengths ive had to go through to make 4dguns, and |
15:35 |
MTDiscord |
its this choppy still? Is ridiculous. Gunplay like in 4dguns with clientside support would be absolutely gorgeous. Can you imagine adding cars to MT? Bikes? Wall jumping? |
15:36 |
MTDiscord |
<fatalisterror> Totally disagree that it wouldnt change anything |
15:39 |
erle |
fatalisterror but would you prefer an engine that just gives you a vehicle trait so you don't have to worry about it? |
15:39 |
erle |
where you can set the static capabilities? |
15:39 |
erle |
(that does not enable walljumps most likely) |
15:40 |
|
olliy1or joined #minetest |
15:41 |
celeron55 |
i want to enable as much creativity as possible. engine-defined traits will never do that |
15:42 |
celeron55 |
but it has to be within a reasonable secure framework. it wouldn't provide all the apis you can imagine. only very specific ones that give the most bang for the buck in terms of improving responsiveness |
15:42 |
celeron55 |
and improving customizability |
15:43 |
celeron55 |
anything that can be reasonable implemented using server side apis, would stay server side |
15:43 |
celeron55 |
reasonably* |
15:45 |
MTDiscord |
<landarvargan> My current interest in SSCSM is network optimization. AFAIK HUDs are really good at clogging up the server<->client packet stream, and things like CTF's sprint HUD could be done entirely in CSM, because it's just changing the HUD at a set interval on AUX press/release |
15:47 |
|
olliy joined #minetest |
15:47 |
celeron55 |
doing custom instantaneous graphics on the screen based on local input fits my requirements |
15:48 |
celeron55 |
like, especially HUD stuff. it's super simple |
15:49 |
celeron55 |
3D stuff might require a vast API that's questionable from a security standpoint |
15:50 |
celeron55 |
2D stuff basically requires only a few primitives, and it would run every frame with no engine-provided object management |
15:50 |
erle |
like SVG with templates for inserting stuff or so |
15:54 |
celeron55 |
i don't know, like just functions for drawing pixels, triangles, images and text, and that's it. what's to be figured out is whether the mini environments would have a message exchange system between them or if they'd only accept custom messages from the server. there's a lot to design. don't do it now |
15:56 |
erle |
i think you could probably prototype that as a CSM using the CSM server-client message channel? |
15:56 |
erle |
no idea |
15:56 |
erle |
anyway |
15:56 |
erle |
see ya |
15:58 |
celeron55 |
well you don't have the necessary apis available i believe |
15:59 |
celeron55 |
and i believe it is not wise to start adding these onto the current CSM implementation, because it will get people stuck on that insecure platform |
16:07 |
|
appguru joined #minetest |
16:10 |
|
doseijin joined #minetest |
16:29 |
|
pounce joined #minetest |
16:29 |
|
v-rob joined #minetest |
16:29 |
|
mrkubax10 joined #minetest |
16:35 |
muurkha |
erle: shaders do have unconstrained looping, if by that you mean while loops |
16:36 |
erle |
muurkha not on my hardware, they become very slow after a finite amount of loops! |
16:36 |
erle |
limited instruction budget per frame i assume |
16:38 |
muurkha |
luatic: you may be interested in the purecap build of CheriBSD for CHERI, which checks pointer bounds in hardware on Morello. the problem with fat pointers is that they break the ABI |
16:44 |
muurkha |
there have been a series of fat-pointer implementations in GCC over the years, but with shared libraries you'd want to build the whole distro with them, and I haven't seen anybody do that |
16:47 |
muurkha |
part of the issue is that the C standard legalizes kind of a lot of pointer arithmetic, including things more conservative languages wouldn't. given struct { int i[10], j, k; } x[10]; I believe it is valid to access x[2].j as x[0].i[&x[3].j - x[3].i + x[4].i - x[2].i], for example |
16:47 |
muurkha |
you have to be able to memcpy structs, and I think you have to be able to recover pointers after casting them to and from intptr_t, if that's defined |
16:49 |
jonadab |
C is inherently, by design, a systems language, meant for implementing things like boot loaders and kernels. |
16:49 |
muurkha |
the preliminary CHERI report suggests that Morello uses about 15% more clock cycles, but that some fixes should reduce this below 5% |
16:49 |
jonadab |
And it was meant to be able to do that decades ago, when computers had a LOT less memory (and system resources generally). |
16:49 |
jonadab |
So it kind of had to be pretty low-level. Goes with the territory. |
16:50 |
muurkha |
jonadab: that's sort of true, in that the criterion for its success was whether Thompson was willing to rewrite the kernel in it, but in 6th Edition Unix it was also the main applications language, and continued to be that up through the end of the millennium |
16:51 |
jonadab |
It was and is used for that _also_ yes. |
16:51 |
muurkha |
languages like C at the time were well-accepted for applications software, but not for boot loaders and kernels |
16:51 |
muurkha |
the key innovation of C was that it was broadly enough applicable to also extend to most of the things you would normally write in assembly |
16:51 |
jonadab |
But languages like lisp were _also_ used for application development. Not so much for boot loaders and kernels. |
16:52 |
muurkha |
Lisp was not considered practical for application development by anything but a small lunatic fringe at the time |
16:52 |
muurkha |
(who were also writing their boot loaders and kernels in it!) |
16:52 |
jonadab |
Wait, really? |
16:52 |
jonadab |
They wrote boot loaders and kernels in lisp? |
16:52 |
muurkha |
yeah, the MIT CADR was maybe the most notable example, but then two companies spun off |
16:52 |
jonadab |
How did I not know this? |
16:53 |
jonadab |
Fascinating. |
16:53 |
jonadab |
I stand corrected, and somewhat in awe. |
16:53 |
muurkha |
Symbolics and Lisp Machine Inc. TI also made a product |
16:53 |
muurkha |
they even wrote their microcode in Lisp |
16:53 |
* jonadab |
boggles |
16:53 |
jonadab |
Microcode. |
16:54 |
muurkha |
regular working programmers at the time, at banks and stuff, were writing transaction processing systems in assembly languages |
16:54 |
jonadab |
Next you'll be telling me somebody has written a 3D graphics engine in postscript. |
16:54 |
muurkha |
I've written a parametric CAD system in PostScript but it's 2D |
16:54 |
jonadab |
Yes, I'm aware of the larger role assembly language had in the early days. |
16:54 |
jonadab |
Mainly due to a general dearth of higher-level languages on most platforms. |
16:55 |
muurkha |
I would say it was due to a dearth of better *low*-level languages like C. |
16:55 |
jonadab |
Because they still needed to be developed. |
16:55 |
jonadab |
I meant higher-level than assembly. Which C _arguably_ is. |
16:55 |
muurkha |
When I started working as a programmer in 01996 there was still the mentality that Serious Software was written in C (or C++) |
16:56 |
muurkha |
garbage collection became reasonably efficient in the mid-90s but most programmers had no idea of this until about 02002 when Java finally beat out C++ |
16:56 |
jonadab |
Heh. |
16:56 |
jonadab |
Java performance was pretty poor in the nineties. |
16:56 |
jonadab |
At least on consumer-grade hardware of the time. |
16:57 |
muurkha |
yeah, but all the C++ programmers I worked with in '96 were convinced that it was going to be the next big language for application software |
16:57 |
muurkha |
we built the Web on the back of Perl (garbage-collected in a particularly lame way) but it took a long time for that to get accepted |
16:57 |
jonadab |
Java isn't just high level though, it's also VM-based. |
16:57 |
jonadab |
You can have a language with higher-level data structures than what C normally uses, and still compile it to machine code. |
16:57 |
muurkha |
Yeah, although there is a lot of blurriness there |
16:58 |
muurkha |
Android software written in Java gets compiled to native binaries these days, and GCJ has been around since the 90s |
16:58 |
jonadab |
Not sure I'd really consider reference counting to be garbage collection, although it serves much the same purpose. |
16:58 |
jonadab |
It doesn't have cycles, though. |
16:58 |
muurkha |
Garbage collection researchers do. |
16:58 |
jonadab |
Hmm, ok. |
16:58 |
muurkha |
And a lot of Smalltalk VMs used it exclusively in the 80s |
16:59 |
muurkha |
the JVM doesn't have a normal bytecode interpreter any more |
16:59 |
muurkha |
what it calls the "interpreter" is actually a super dumb JIT compiler to native code |
16:59 |
muurkha |
I mean the HotSpot JVM in the JDK |
16:59 |
jonadab |
I have no experience with and little knowledge of Smalltalk, though of course I've heard about it. |
16:59 |
muurkha |
and an awful lot of Java software in the early 02000s was running on Jazelle |
17:00 |
|
Sobinec joined #minetest |
17:00 |
muurkha |
which was ARM's "set a bit in the CPU and now JVM bytecode is your machine code" thing |
17:00 |
jonadab |
I mean, a _lot_ of Java code was running on the browser plugin. |
17:00 |
muurkha |
Jazelle is unfortunately not very well documented |
17:01 |
muurkha |
yeah, the browser plugin was HotSpot-based from the mid-02000s, but it never really took off the way server-side Java, Dalvik, and client-side JS did |
17:02 |
muurkha |
Jazelle only really implemented the simpler JVM bytecodes in hardware; it trapped to "millicode" implementations for the more complex instructions, similar to how Linux implements virtual memory |
17:02 |
jonadab |
I'm glad browser-plugin Java has mostly faded into obscurity. |
17:02 |
muurkha |
access the wrong page of memory and your program's execution is suspended for a few thousand cycles while the kernel fixes up your memory map |
17:03 |
jonadab |
Although by the end, performance was no longer its problem. |
17:03 |
muurkha |
Anyway, I think it's reasonable to say that C *now* is best used only for things like kernels and bootloaders. Wrong, but reasonable. |
17:04 |
jonadab |
For new projects, I think I would lean that way. |
17:04 |
muurkha |
But it's totally ahistorical to claim that that was what it was designed for. |
17:04 |
jonadab |
But of course there are gazillions of existing projects written in it that need to be maintained for the forseeable. |
17:05 |
jonadab |
I mean, it wasn't designed _exclusively_ for that stuff. But it was designed to be _able_ to do that stuff, I still think that's true. |
17:06 |
jonadab |
Though it's possible there was less of a distinction between low-level and systems programming versus application development back then. Likely even. |
17:06 |
muurkha |
Yes! But the mainstream belief at the time was that high-level languages like COBOL and PL/I were often too inefficient to write application software in, prior to the shift to C. |
17:07 |
jonadab |
COBOL is too inefficient (with programmer time if nothing else) to write anything in. |
17:07 |
muurkha |
That wasn't the argument, and it's a lot more efficient with programmer time than assembly! |
17:07 |
muurkha |
"Systems programming" included things like compilers, which aren't inherently low-level, though you can certainly write them in low-level languages. |
17:08 |
jonadab |
In principle, you _can_ write anything in a low level language, down to and including machine code. It's just a question of whether there's a better option. |
17:17 |
muurkha |
Right, and I'm talking about what people generally thought in the 70s and early 80s, which is the period of time in question. It was a period of time when the opinion that writing application software in a high-level language rather than assembly was starting to become widespread. |
17:18 |
muurkha |
Fred Brooks famously advocated this point of view in his book in 01975, but C didn't really displace assembly for that purpose until the late 80s. |
17:18 |
muurkha |
In IBM mainframe shops, it never did; they were writing new applications code in assembly until the late 90s or early 2000s |
17:19 |
muurkha |
Though IBM itself wrote DB2 in PL/M |
17:20 |
muurkha |
and there have been *some* applications written in high-level languages as long as there have been interpreters; Brief Code is from 01949 |
17:23 |
muurkha |
So it's true that being able to write kernels and bootloaders in C was what C was designed for; but it was coming into that space from above, so to speak, a language that advanced and ambitious people might use for applications whose applicability could even extend down into the kernel space. Not the other way around, a language for kernels whose applicability could extend up into the applications |
17:23 |
muurkha |
space. |
17:23 |
|
Talkless joined #minetest |
17:23 |
muurkha |
The predecessor of C, B, compiled to an interpreted stack bytecode similar to the JVM bytecode, but untyped. |
17:38 |
|
sparky4 joined #minetest |
17:42 |
jonadab |
Hmm. |
17:42 |
jonadab |
I knew of the existence of B but didn't know anything about it. |
17:43 |
jonadab |
Other than its name (such as it is). |
17:50 |
|
v-rob joined #minetest |
18:11 |
|
Desour joined #minetest |
18:57 |
|
sparky4 joined #minetest |
19:00 |
|
sugarbeet joined #minetest |
19:05 |
|
erle_on_ice joined #minetest |
19:06 |
erle_on_ice |
what is it with everyone and codeberg? |
19:06 |
muurkha |
erle_on_ice: did you see my notes yesterday about 3-D rendering algorithms? |
19:06 |
erle_on_ice |
yes, probably |
19:06 |
erle_on_ice |
i opened your page |
19:06 |
erle_on_ice |
but on another computer |
19:07 |
erle_on_ice |
i also realized that i should probably put a check in tga_encoder so it actually can not encode the evil images |
19:07 |
erle_on_ice |
because right now it is trivial to do so |
19:08 |
muurkha |
which page? |
19:08 |
erle_on_ice |
the one with some javascript canvas rendering |
19:08 |
erle_on_ice |
i am on a train, i will get the logs |
19:11 |
erle_on_ice |
the irrlicht maintainer has already answered, but seems confused https://irrlicht.sourceforge.io/forum/viewtopic.php?t=52925 |
19:12 |
erle_on_ice |
i opened this page i think http://canonical.org/~kragen/sw/torus |
19:12 |
muurkha |
aha, yes. that's the one that shows polygon rendering with flat shading (not scanline rendering, but a form easily adapted to it) |
19:13 |
erle_on_ice |
lol everything looks cooler with trails |
19:13 |
muurkha |
yes |
19:13 |
muurkha |
but I think you might be more interested in the SDF raymarcher |
19:13 |
muurkha |
which was another page of mine from that conversation you could have opened ;) |
19:13 |
erle_on_ice |
muurkha i am not a smartie, but here, have some ghetto orbital mechanics http://daten.dieweltistgarnichtso.net/src/schwrkrft/ |
19:13 |
erle_on_ice |
they have trails too |
19:14 |
muurkha |
nice |
19:14 |
erle_on_ice |
i will, probably |
19:15 |
erle_on_ice |
well, i learned how fast you have to go to get to orbit in school in astronomy class |
19:15 |
erle_on_ice |
you can see in the code that it is pretty stupid |
19:15 |
erle_on_ice |
i once implemented point-gravity for minetest where you could orbit around 0,0,0 |
19:15 |
muurkha |
are you using a conservative numerical integrator? |
19:16 |
hare_hare_yukai |
drugs is one hell of a drug |
19:16 |
erle_on_ice |
muurkha http://daten.dieweltistgarnichtso.net/src/schwrkrft/js/n-body.js |
19:16 |
muurkha |
ah, no, it's just forward Euler |
19:17 |
muurkha |
do you know about leapfrog integration? it works a lot better for this kind of thing |
19:17 |
erle_on_ice |
ah, you can spawn things in orbit i think |
19:17 |
erle_on_ice |
i forgot |
19:17 |
erle_on_ice |
i forgot how |
19:17 |
erle_on_ice |
apparently i do not |
19:17 |
erle_on_ice |
ah there is a button |
19:18 |
muurkha |
with forward Euler even a simple two-body system orbiting in circles will gradually gain energy; leapfrog integration is symplectic |
19:18 |
erle_on_ice |
the numeric instability in my simulation is off the charts |
19:19 |
muurkha |
try leapfrog integration, it's easy and fun! |
19:20 |
erle_on_ice |
everything is flying away |
19:20 |
erle_on_ice |
i will look it up now |
19:20 |
erle_on_ice |
minetest orbital mechanics when |
19:21 |
muurkha |
it's probably the case that a random N-body system really *is* unstable and will eject rogue planets from time to time; that's not necessarily an error due to numerical instability |
19:23 |
|
erle_on_ice joined #minetest |
19:54 |
hare_hare_yukai |
sometimes life is... cock & ball torture |
20:02 |
|
erle_on_ice joined #minetest |
20:04 |
hare_hare_yukai |
erle_on_ice where can i see the musical? |
20:05 |
erle_on_ice |
which musical |
20:05 |
erle_on_ice |
this is like yuri on ice |
20:06 |
hare_hare_yukai |
does that mean you are a lesbian on ice? |
20:09 |
erle_on_ice |
hilariously, yuri on ice seems to be a series about boys https://en.wikipedia.org/wiki/Yuri_on_Ice |
20:21 |
hare_hare_yukai |
>Poorly-socialized male-at-birth who was mostly raised by screens (TV, computer, etc.) rather than their parents, and therefore didn't properly develop a healthy social-identity. Due to having few or no friends or positive role-models, they instead form a strong parasocial relationship with female pornography subjects and/or female video game & |
20:21 |
hare_hare_yukai |
cartoon characters, to the point that they end up identifying as a "transgender-lesbian". |
20:21 |
erle_on_ice |
what |
20:22 |
erle_on_ice |
are you researching the infamous incel-to-trans-catgirl pipeline? |
20:22 |
hare_hare_yukai |
yes |
20:22 |
erle_on_ice |
i think the reason for t4t relationships could also just be that the cis don't get it? like, shared experiences or so |
20:23 |
|
appguru joined #minetest |
20:23 |
erle_on_ice |
hare_hare_yukai did you get what you posted from? |
20:24 |
hare_hare_yukai |
did i get what? |
20:24 |
erle_on_ice |
oh lol |
20:24 |
erle_on_ice |
urban dictionary: troon |
20:25 |
erle_on_ice |
hare_hare_yukai go here instead http://ts.isnice.be/ |
20:28 |
sfan5 |
while this channel does not have a strong on-topic requirement I feel you have ventured very far from it |
20:29 |
muurkha |
sorry |
20:33 |
|
v-rob joined #minetest |
20:48 |
|
erle_on_ice joined #minetest |
20:49 |
|
amfl2 joined #minetest |
21:11 |
|
amfl2 joined #minetest |
21:20 |
erle_on_ice |
what's the issue people have with the subtree merge method? i have just seen this and it seems to work fine https://codeberg.org/mineclonia/mineclonia/pulls/580 |
21:22 |
|
illwieckz_ joined #minetest |
21:23 |
|
illwieckz joined #minetest |
21:52 |
|
appguru joined #minetest |
22:21 |
|
illwieckz joined #minetest |
22:33 |
|
panwolfram joined #minetest |
22:34 |
|
sys4 joined #minetest |
22:56 |
|
illwieckz joined #minetest |
22:58 |
|
Alias joined #minetest |
23:06 |
|
comrad joined #minetest |
23:13 |
|
illwieckz joined #minetest |
23:13 |
|
v-rob joined #minetest |
23:13 |
|
erle_on_ice joined #minetest |
23:24 |
|
simon816 joined #minetest |
23:30 |
|
AliasAlreadyTake joined #minetest |
23:31 |
|
Leopold_ joined #minetest |