Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2024-10-09 00:00 and 2024-10-10 00:00
Avatar
It must get tiring to ferociously defend the codebase for so long, I don't think I could do it
00:14
I agree with his side, the other guy should do more testing
Avatar
the last night thing is crazy
Avatar
Avatar
Ewan
the last night thing is crazy
I think the actual patches are 2 weeks old but the commits were reformatted the night before. but still I would think for the kernel you'd want to have them in their final format for a while before shipping them
Avatar
GitHub BOT 2024-10-09 00:50
If the sql statement does not contain placeholders NumParameters can be empty. In that case accessing the first element will cause an asan error: runtime error: reference binding to null pointer of type 'st_mysql_bind'
Avatar
good morning vietnam
justatest 3
Avatar
MilkeeyCat 2024-10-09 06:38
Yo, I'm writing a "type checker" for my language and I wanted to ask if you know how to make the code better because what I made is... not the best code pub fn check_sub(lhs: &Expr, rhs: &Expr, scope: &Scope) -> Result<()> { // This function has to check if subtract expression has valid operands // Rules: // `foo - 69` check if type of 69 is not bigger than type of foo // `69 - foo` check if type of 69 is not bigger than type of foo // `foo - bar` check if foo and bar of the same type // `ptr - offset` variable offset has to be either variable of type usize or immediate let left_type = lhs.type_(scope)?; let right_type = rhs.type_(scope)?; if left_type.ptr() { if !Expr::int_lit_only(rhs) { assert_eq!(right_type, Type::UInt(UintType::Usize)); } } if left_type.int() && right_type.int() { match (Expr::int_lit_only(lhs), Expr::int_lit_only(rhs)) { (true, false) => { assert!(Type::common_type(left_type, right_type.clone()) < right_type); } (false, true) => { assert!(Type::common_type(left_type.clone(), right_type) < left_type); } (false, false) => assert_eq!(left_type, right_type), (true, true) => (), }; } panic!("Invalid operands"); }
Avatar
mornin
Avatar
Koll Potato 2024-10-09 06:55
hi developa
brownbear 4
Avatar
hi
Avatar
хз ноунейм 2024-10-09 06:58
Hi
Avatar
GitHub BOT 2024-10-09 07:54
f7955a5 Fix empty vector element access in mysql prepare - ChillerDragon a9e52d2 Merge pull request #9131 from ChillerDragon/pr_fix_mysql_null_bind - def-
Avatar
MilkeeyCat 2024-10-09 08:06
why does rust implement std::ops::Shl/std::ops::Shr for all possible integer type combinations but not for addition / subtraction etc.? (edited)
Avatar
heinrich5991 2024-10-09 08:44
maybe because the inputs to << and >> are treated differently
Avatar
Avatar
Teero
An atom is also just a model we use to describe nature. We have no idea if we are correct. It is just that it fits with everything we have seen so far
heinrich5991 2024-10-09 08:45
how would you even define "correct"?
Avatar
Avatar
heinrich5991
how would you even define "correct"?
"correct" would be a model that if simulated results in the exact same behaviour as real life in every case. But there is no way to know if smth is "correct" except observing things. I'm just ranting that people just accept the current models as correct.
Avatar
heinrich5991 2024-10-09 08:53
in practice, all of the models I use are incorrect then, I think
👍 1
08:54
but I find them much more useful than their more correct counterparts, because I can actually compute stuff with them and make useful predictions
Avatar
Jupstar ✪ 2024-10-09 08:57
ddnet physics are better than RL physics
08:57
no falldmg is just a selling argument
Avatar
GitHub BOT 2024-10-09 09:21
Mostly happens when I get a poor internet connection with the server, but this time I still have the hook sound. I can't remember if I had hook sounds before, but I will pay attention to it in the future. This video is too big. Try again with a file size less than 10MB.
Avatar
Avatar
Tater
I agree with his side, the other guy should do more testing
The other guy has to play by the release cycle rules. You don't blindside the maintainer with critical patches in rc...
Avatar
Avatar
Learath2
The other guy has to play by the release cycle rules. You don't blindside the maintainer with critical patches in rc...
Jupstar ✪ 2024-10-09 11:02
What is the sense of rc then?
Avatar
Rcs are release candidates, they are for minor touchups if needed, not critical patches that have been held for 2 weeks because mr man didn't feel like putting it up before the rc
Avatar
Avatar
Learath2
Rcs are release candidates, they are for minor touchups if needed, not critical patches that have been held for 2 weeks because mr man didn't feel like putting it up before the rc
Jupstar ✪ 2024-10-09 11:04
And now? How can you tell the patches were ready 2 weeks ago?
Avatar
He said they were ready 2 weeks ago
Avatar
Jupstar ✪ 2024-10-09 11:05
And how did Linus not notice it when he prepared the rc?
Avatar
Avatar
Jupstar ✪
And how did Linus not notice it when he prepared the rc?
Because he didn't say it 2 weeks ago. He said in that mail chain when submitting the patches
11:07
When accused of pushing untested commits into an rc the night before it's release, he said he had been testing the changes in his tree for 2 weeks now
11:07
The kernel has a way of doing release cycles, you just have to play by the rules. It's non-negotiable, everyone else has no issue pushing their changes in time
Avatar
Jupstar ✪ 2024-10-09 11:08
I dunno I read the dialog a bit and to me it sounds like both sides are at fault. But I am not so much in the material
Avatar
If you don't want to play by the rules, you can ship your thing as a kernel module
Avatar
Avatar
Jupstar ✪
I dunno I read the dialog a bit and to me it sounds like both sides are at fault. But I am not so much in the material
The only context you need to know is that idk any other mainline project that is having this issue of not putting up their patches in time
11:10
Mr Kent thinks his project needs special treatment
Avatar
Avatar
Learath2
The only context you need to know is that idk any other mainline project that is having this issue of not putting up their patches in time
Jupstar ✪ 2024-10-09 11:12
Ok sure. But the question I have is, why did Linus then pull his tree at all. Did the other maintainer say he wants "this" for the RC? Like is there no communication or smth
11:12
Sounds all so random lmao
11:13
They should just switch to a proper git and do pull requests properly lmao
Avatar
Avatar
Jupstar ✪
Ok sure. But the question I have is, why did Linus then pull his tree at all. Did the other maintainer say he wants "this" for the RC? Like is there no communication or smth
Idk why Linus still let these patches in because last rc when Kent tried to pull the same shit he didn't let them in. My guess would be that these ones are actually critical unlike the last ones
11:16
Also his jabs towards btrfs throughout his mails were a little disgusting ngl. I wouldn't tolerate that attitude
Avatar
Jupstar ✪ 2024-10-09 11:17
tja, 2 egos hit each others xd
Avatar
@Learath2 do u know where to find gcc docs on weakref attribute?
11:18
extern uint64_t* X; int main() { X = ...; return 0; } if i have a static lib .a that defines a global like this, and define in a C file this global with extern, it will modify it right?
Avatar
Avatar
Ryozuki
@Learath2 do u know where to find gcc docs on weakref attribute?
Avatar
Idk if there is anything more detailed about weakref specifically
Avatar
Jupstar ✪ 2024-10-09 11:18
@Learath2 have you ever contributed to a project that uses mailing lists btw?
Avatar
Avatar
Jupstar ✪
@Learath2 have you ever contributed to a project that uses mailing lists btw?
Not yet, I always wanted to get something into the kernel but never found what to do
Avatar
Avatar
Ryozuki
extern uint64_t* X; int main() { X = ...; return 0; } if i have a static lib .a that defines a global like this, and define in a C file this global with extern, it will modify it right?
Yes, if I understood you correctly
Avatar
Avatar
Learath2
Not yet, I always wanted to get something into the kernel but never found what to do
Jupstar ✪ 2024-10-09 11:20
I see. I always wonder if these older than oldschool projects are unattractive for young ppl
Avatar
Avatar
Learath2
Yes, if I understood you correctly
if the global is a pointer the extern should be a double ptr?
11:21
xd
Avatar
Jupstar ✪ 2024-10-09 11:21
I once contributed to an SVN project, and it was really annoying how they did things xD
Avatar
Avatar
Jupstar ✪
I see. I always wonder if these older than oldschool projects are unattractive for young ppl
The barrier to entry is just too high I guess. When contributing something to a git project on github it's a breeze
Avatar
Avatar
Ryozuki
if the global is a pointer the extern should be a double ptr?
No not like that
Avatar
Avatar
Learath2
The barrier to entry is just too high I guess. When contributing something to a git project on github it's a breeze
Jupstar ✪ 2024-10-09 11:22
Yeah but also depends on the project. I doubt I want to pr smth to rust upstream again. Overloaded maintainers with no idea what they want
Avatar
@gdin hi
Avatar
Jupstar ✪ 2024-10-09 11:23
I guess maintaining is always a annoying job xD You have to deal with so many different ppl of different skill sets & language
Avatar
Avatar
zhn
@gdin hi
Jupstar ✪ 2024-10-09 11:23
You alive bro
Avatar
Avatar
Ryozuki
ok
Sorry had to step away for a second. Think of it like the names directly aliasing eachother
Avatar
ye it worked
Avatar
Avatar
Jupstar ✪
Yeah but also depends on the project. I doubt I want to pr smth to rust upstream again. Overloaded maintainers with no idea what they want
Rust imo also has a governance issue.
11:37
There are features and proposals that have been just waiting around for yeaaaars now
Avatar
Avatar
Learath2
There are features and proposals that have been just waiting around for yeaaaars now
Jupstar ✪ 2024-10-09 11:39
Yep true. It's also a very divisive topic ig. Some ppl work a lot with rust, so any cool feature makes the life easier. And then there are ppl that want the language to stay clean and not too overpowered. Yeah dunno, where are my AI friends hhehehe
Avatar
It seems after a language gets to a certain level of adoption, things just grind to a halt because of all the politics and expectations involved
11:40
Atleast rust has the mechanism of editions to let them break stuff
Avatar
Avatar
Learath2
Atleast rust has the mechanism of editions to let them break stuff
Jupstar ✪ 2024-10-09 11:40
But I feel likey they don't do that
11:40
Like really breaking stuff
11:40
Just like cpp would never do
Avatar
Yeah, it feels underused. Is a 6 year discussion worth not breaking stuff when we have a mechanism that explicitly allows us to get out of this stalemate?
Avatar
Avatar
Learath2
It seems after a language gets to a certain level of adoption, things just grind to a halt because of all the politics and expectations involved
Jupstar ✪ 2024-10-09 11:41
But I still find that interesting. It seems like almost all projects suffer from that, and in the end there is smth new that simply replaces it until it suffers the same fate
Avatar
I wonder if a scheduled edition break every 2 years would help with these projects. If breakage is inevitable maybe the maintainers would become less conservative
Avatar
Jupstar ✪ 2024-10-09 11:43
Maybe the problem is also simply that maintainers are not replaced. To not sound unfair. ofc the old maintainers have much more experience and probably carry that a project stays stable. But I guess humans are simply not motivated over years to come
Avatar
Avatar
Jupstar ✪
Maybe the problem is also simply that maintainers are not replaced. To not sound unfair. ofc the old maintainers have much more experience and probably carry that a project stays stable. But I guess humans are simply not motivated over years to come
This is also an issue yeah. Term limits for maintainers when?
Avatar
Jupstar ✪ 2024-10-09 11:44
😬
Avatar
I guess the issue is the caliber of individual required to be a maintainer of something like rust. You can't just pick any random programmer for the job. So maybe it's not even easy to replace them even if you wanted
Avatar
Jupstar ✪ 2024-10-09 11:46
Yeah true
Avatar
I think Rust suffers from being designed by committee, similar to C++. Languages like that end up adding a lot of features, which makes it extremely hard to become proficient in the language
Avatar
Avatar
deen
I think Rust suffers from being designed by committee, similar to C++. Languages like that end up adding a lot of features, which makes it extremely hard to become proficient in the language
Hm, perhaps you do have a point. The standard libraries of both are huuuge and they have many tools available for the same job. What do you think is a viable alternative? A language designed by a BDFL?
11:52
Useless English word of the day: loquacious, means talkative
Avatar
Jupstar ✪ 2024-10-09 11:53
And what does talkative mean
11:53
Well I translated it now, so you don't need to answer anymore xd
Avatar
Avatar
Learath2
Hm, perhaps you do have a point. The standard libraries of both are huuuge and they have many tools available for the same job. What do you think is a viable alternative? A language designed by a BDFL?
Strongly opinionated BDFL who doesn't approve most ideas (Python), or just a small team that develops the product without accepting any outside contributions (SQLite)
11:55
but there has to be a vision, and it's usually easier for a person to have that vision compared to an organization/committee
11:56
(DDNet also suffers from this, we just merge a lot of stuff)
Avatar
Jupstar ✪ 2024-10-09 11:56
I have a vision about ddnet too
Avatar
Avatar
deen
Strongly opinionated BDFL who doesn't approve most ideas (Python), or just a small team that develops the product without accepting any outside contributions (SQLite)
Given I'm not a huge fan of either, I'm unsure whether I agree that's a good way to run a project. But given their success in the market it's hard to deny that their approach delivers a decent product
Avatar
I wanted to fix something in SQLite and that's when I found out you can't contribute at all 😄
Avatar
Avatar
deen
(DDNet also suffers from this, we just merge a lot of stuff)
We are faar too soft indeed, we should really stop accepting anything that hasn't gone through a discussion and pre-approved
11:59
We just end up merging because someone put in the time to develop something, but that's not a great reason
Avatar
Jupstar ✪ 2024-10-09 12:00
I think our problem is somewhere else. We want to be mod friendly and have backward compatiblity and compatible to all versions of teeworlds and motivate people to contribute their ideas to ddnet and want to be stable xD (edited)
Avatar
Avatar
Jupstar ✪
I think our problem is somewhere else. We want to be mod friendly and have backward compatiblity and compatible to all versions of teeworlds and motivate people to contribute their ideas to ddnet and want to be stable xD (edited)
Yeah and the solution is so obvious actually
12:02
All this crud has to be chopped off. Plugin support, downloadable gamecore, separate backwards compatibility layer
Avatar
Jupstar ✪ 2024-10-09 12:02
Well I defs have ideas to solve some of our problems, but defs not all xD
Avatar
Avatar
Learath2
All this crud has to be chopped off. Plugin support, downloadable gamecore, separate backwards compatibility layer
Jupstar ✪ 2024-10-09 12:02
E.g. I'd NEVER accept plugin support for ddnet
12:02
Just as modloaders for minecraft don't upstream their stuff
Avatar
Russia and Turkey banned discord
Avatar
Jupstar ✪ 2024-10-09 12:03
What I'd accept is to replace components in total (at once) where the interface is clear
12:03
That is also what the idea of dd-pg is. You can replace ingame rendering and physics
12:03
But you cannot load a plugin that only changes 1 line of code
Avatar
Avatar
deen
I wanted to fix something in SQLite and that's when I found out you can't contribute at all 😄
That is a thing I'm not a huge fan of. But I do understand why they do it. It's really hard to ensure outside contributions quality. People hate their code getting reviewed and get argumentative
Avatar
Avatar
fokkonaut
Russia and Turkey banned discord
Jupstar ✪ 2024-10-09 12:03
:c
Avatar
Avatar
Jupstar ✪
Yeah but also depends on the project. I doubt I want to pr smth to rust upstream again. Overloaded maintainers with no idea what they want
heinrich5991 2024-10-09 12:04
rust is relatively easy to contribute to IME
Avatar
Learath2, how are you here? VPN? xd
Avatar
Avatar
Learath2
There are features and proposals that have been just waiting around for yeaaaars now
heinrich5991 2024-10-09 12:04
well, it's good that not everything is accepted. I guess it needs more explicit rejections though
Avatar
Avatar
heinrich5991
rust is relatively easy to contribute to IME
Jupstar ✪ 2024-10-09 12:04
Mh maybe u got a better experience then xD. I literally felt the burn out of rust maintainers
Avatar
Avatar
Jupstar ✪
E.g. I'd NEVER accept plugin support for ddnet
You just don't want to make any API promises? Idk I think if we had an easy way for people to modify their clients and servers we wouldn't get so many complaints
Avatar
Avatar
Learath2
You just don't want to make any API promises? Idk I think if we had an easy way for people to modify their clients and servers we wouldn't get so many complaints
Jupstar ✪ 2024-10-09 12:05
Yes, that is allowed, but not as plugin system. Well depends on the definition of plugin maybe
Avatar
Avatar
Learath2
Hm, perhaps you do have a point. The standard libraries of both are huuuge and they have many tools available for the same job. What do you think is a viable alternative? A language designed by a BDFL?
heinrich5991 2024-10-09 12:05
😄 yesterday I read something on reddit, people complaining about the rust stdlib being way too small
Avatar
Avatar
heinrich5991
😄 yesterday I read something on reddit, people complaining about the rust stdlib being way too small
Huh, what are they missing even lol 😄
Avatar
Jupstar ✪ 2024-10-09 12:06
I wouldn't want to allow "small" lua scripts for example. I prefer it to see it like mc, there can be a mod loader that replaces the whole physics system and add their lua support
12:06
That is the reason I chose WASM
Avatar
Avatar
Jupstar ✪
I wouldn't want to allow "small" lua scripts for example. I prefer it to see it like mc, there can be a mod loader that replaces the whole physics system and add their lua support
So less granular hooks
Avatar
Avatar
Learath2
So less granular hooks
Jupstar ✪ 2024-10-09 12:07
Yeah exactly
Avatar
But the less granular your hooks the harder it is to make a mod/plugin
Avatar
Jupstar ✪ 2024-10-09 12:07
I feel like upstream code with call_lua_this call_lua_that will just be a pain But that's my opinion
Avatar
Avatar
Learath2
But the less granular your hooks the harder it is to make a mod/plugin
Jupstar ✪ 2024-10-09 12:07
Well the mod loader has to deal with it
Avatar
heinrich5991 2024-10-09 12:08
I think @GutZuFusss made a nice lua client that shows how it could work
Avatar
Jupstar ✪ 2024-10-09 12:08
Yes, but not upstream
Avatar
Avatar
Jupstar ✪
Well the mod loader has to deal with it
With C++ it's much harder, you can't really replace entire classes on the go like with Java
Avatar
heinrich5991 2024-10-09 12:08
btw, I actually didn't think that rust's stdlib is too large. what makes you feel that way? @Learath2
Avatar
Avatar
Learath2
With C++ it's much harder, you can't really replace entire classes on the go like with Java
Jupstar ✪ 2024-10-09 12:09
Yeah, so if you want it like java, compile your java runtime to wasm xDDD
Avatar
Avatar
heinrich5991
btw, I actually didn't think that rust's stdlib is too large. what makes you feel that way? @Learath2
I feel every type has so many methods available. E.g. just check the doc page for Vec
Avatar
heinrich5991 2024-10-09 12:12
I feel like that isn't a problem
12:12
at least that in particular: vec having many methods
Avatar
Avatar
heinrich5991
I feel like that isn't a problem
It isn't a problem per se, but it makes it harder to be proficient
Avatar
GutZuFusss 2024-10-09 12:13
I have a v8 client aswell
Avatar
Avatar
GutZuFusss
I have a v8 client aswell
Jupstar ✪ 2024-10-09 12:13
So javascript
Avatar
GutZuFusss 2024-10-09 12:14
that could be merged with upstream
Avatar
Avatar
Jupstar ✪
So javascript
GutZuFusss 2024-10-09 12:14
and WASM so virtually any programming language
Avatar
Jupstar ✪ 2024-10-09 12:14
Yeah but not wasm only
Avatar
E.g. in Python, List has like 6-7 methods. It's usually obvious how to use a List properly
Avatar
Jupstar ✪ 2024-10-09 12:15
Teeworlds 0.7 with V8 scripting engine. Developement will be slow, but steady™. - AllTheHaxx/CDXX
Avatar
GutZuFusss 2024-10-09 12:15
yes
12:15
it just has console.print bound iirc
Avatar
Jupstar ✪ 2024-10-09 12:16
How do you share memory with your v8 engine? Is it uploaded on fly for single functions? E.g. let's say you have a OnClientJoin, how would that look like?
Avatar
Avatar
Jupstar ✪
I feel like upstream code with call_lua_this call_lua_that will just be a pain But that's my opinion
Once upon a time, I imagined a future where this worked in a layered way. Only level of abstraction "upstream" would be aware of would be a CPluginManager which would load a .so file and just call hooks in it, nothing more. Then one could implement a python or lua or whatever loader plugin
Avatar
Avatar
Jupstar ✪
How do you share memory with your v8 engine? Is it uploaded on fly for single functions? E.g. let's say you have a OnClientJoin, how would that look like?
GutZuFusss 2024-10-09 12:17
you can just bind variables and callbacks as you said
Avatar
Avatar
GutZuFusss
you can just bind variables and callbacks as you said
Jupstar ✪ 2024-10-09 12:17
So the c++ object gets transformed into what? 😄
Avatar
GutZuFusss 2024-10-09 12:17
I did not spend a lot of thought on how to approach that
Avatar
Jupstar ✪ 2024-10-09 12:17
Oh ok
Avatar
Avatar
Jupstar ✪
So the c++ object gets transformed into what? 😄
GutZuFusss 2024-10-09 12:17
javascript objects
Avatar
Avatar
GutZuFusss
javascript objects
Jupstar ✪ 2024-10-09 12:17
Is there any limitations? U have no raw pointers at least ig :d
Avatar
Avatar
Learath2
It isn't a problem per se, but it makes it harder to be proficient
heinrich5991 2024-10-09 12:17
extract_if, pop_if, into_flattened are the methods that I didn't know from just their names. after looking at the methods, I feel like this is okay
Avatar
Avatar
Jupstar ✪
You alive bro
not really
✅ 1
12:18
discord refuses to work at times
Avatar
Avatar
Learath2
E.g. in Python, List has like 6-7 methods. It's usually obvious how to use a List properly
heinrich5991 2024-10-09 12:18
I think it makes sense that rust has a lot more functions on a vector since it wants to have performant ways to manipulate it
Avatar
Avatar
Jupstar ✪
Is there any limitations? U have no raw pointers at least ig :d
Jupstar ✪ 2024-10-09 12:19
Additionally how is the performance if an object needs to be translated to js object every frame
Avatar
@Jupstar ✪ do you share your host memory directly with wasm?
Avatar
Jupstar ✪ 2024-10-09 12:21
@heinrich5991 I'd really like to see how you want to integrate lua in a sane matter and also deliver a good amount of customization. I mean it's not like I never thought about not doing the approach I do rn. But just bcs factario uses LUA, I don't think that this is generally a good approach. It depends on what your goal is ig^^ So I am seriously interested, also about how much complexity is added with such an approach
12:22
I literally stopped it when I noticed that switching to a wasm runtime all the time is annoying and also not that fast
Avatar
Avatar
Learath2
@Jupstar ✪ do you share your host memory directly with wasm?
Jupstar ✪ 2024-10-09 12:22
Ofc not, that's not even possible 😄
12:22
I serialize and deserailize it
12:22
That is also costly btw, but apparently not my bottleneck
12:23
Since it happens on low rates currently
Avatar
Avatar
Jupstar ✪
Ofc not, that's not even possible 😄
It would be cool if you could expose parts of host memory directly
Avatar
heinrich5991 2024-10-09 12:23
wdym, directly?
12:23
share a byte array with the VM, that the VM has bounds-checked access to?
12:23
sounds doable
Avatar
Avatar
heinrich5991
share a byte array with the VM, that the VM has bounds-checked access to?
Yes
Avatar
Jupstar ✪ 2024-10-09 12:23
I want to support complex types tho
Avatar
Avatar
Jupstar ✪
@heinrich5991 I'd really like to see how you want to integrate lua in a sane matter and also deliver a good amount of customization. I mean it's not like I never thought about not doing the approach I do rn. But just bcs factario uses LUA, I don't think that this is generally a good approach. It depends on what your goal is ig^^ So I am seriously interested, also about how much complexity is added with such an approach
heinrich5991 2024-10-09 12:25
factorio for example implements much of the game logic in lua, in a sense, the actual game is just a mod as well
Avatar
But complex types are only a composition of primitive types. As long as you can ensure the layout is the same, you could share data that way. Pointers are probably the biggest issue in there. Idk how one would keep that safe
Avatar
heinrich5991 2024-10-09 12:25
I'd probably go with a similar approach for ddnet
Avatar
Avatar
heinrich5991
factorio for example implements much of the game logic in lua, in a sense, the actual game is just a mod as well
Jupstar ✪ 2024-10-09 12:25
Ah yeah, that is what I do with wasm too then, and can still support lua I just don't get why lua instead of wasm
Avatar
heinrich5991 2024-10-09 12:26
wasm is good if you want to have first-class support for C/C++/Rust
Avatar
Avatar
Jupstar ✪
Ah yeah, that is what I do with wasm too then, and can still support lua I just don't get why lua instead of wasm
3 letter word is quicker to type than 4 letter word, it's obvious
Avatar
heinrich5991 2024-10-09 12:26
lua is good if you want first-class support for lua
Avatar
Avatar
heinrich5991
wasm is good if you want to have first-class support for C/C++/Rust
Jupstar ✪ 2024-10-09 12:26
And the lua interpreter compiles to wasm, since it's in c
12:27
and thus u have lua support
12:27
without upstreaming it
Avatar
heinrich5991 2024-10-09 12:27
I would guess, but would be happy to be convinced otherwise, that the lua support is not going to be first class
12:27
i.e. that you need a lot of tinkering to make it work — but I'd like for anyone with a text editor to be able to make a mod, that'd be amazing
Avatar
Actually I wonder if anyone wrote a lua to wasm compiler
Avatar
Avatar
heinrich5991
I would guess, but would be happy to be convinced otherwise, that the lua support is not going to be first class
Jupstar ✪ 2024-10-09 12:27
But why.. If you add lua support in your rust library or if you add lua support to your rust library that compiles to wasm
12:28
where is the difference xD
Avatar
Avatar
heinrich5991
i.e. that you need a lot of tinkering to make it work — but I'd like for anyone with a text editor to be able to make a mod, that'd be amazing
Jupstar ✪ 2024-10-09 12:28
Yes but that is required anyway
12:28
WASM is just an additional layer
Avatar
heinrich5991 2024-10-09 12:28
it's not a given that a lot of tinkering is required
Avatar
Jupstar ✪ 2024-10-09 12:28
I could also say it differently. You don't even notice dd-pg has WASM
12:29
Since the code is the same rust code
Avatar
while trying to cross-compile client on windows to .exe file, it just won't open for some reason... any ideas?
Avatar
Avatar
heinrich5991
i.e. that you need a lot of tinkering to make it work — but I'd like for anyone with a text editor to be able to make a mod, that'd be amazing
This is probably the most important thing. The ability to mod with just a text editor is great for so many games
Avatar
Avatar
Learath2
This is probably the most important thing. The ability to mod with just a text editor is great for so many games
Jupstar ✪ 2024-10-09 12:29
But I don't see how wasm isntead of lua stops that. Your lua stuff can be hot reloaded too in a wasm module
12:30
it's literally like you code native minus some stuff like threading
Avatar
Avatar
Jupstar ✪
But I don't see how wasm isntead of lua stops that. Your lua stuff can be hot reloaded too in a wasm module
You are saying someone develops and maintains a wasm-lua-loader layer that handles this?
Avatar
Avatar
Learath2
You are saying someone develops and maintains a wasm-lua-loader layer that handles this?
Jupstar ✪ 2024-10-09 12:30
Apparently there is an interest for that
12:30
I mean someone has to maintain the lua part
12:30
and that's what he ends up doing
Avatar
Avatar
StormA
while trying to cross-compile client on windows to .exe file, it just won't open for some reason... any ideas?
i've used a ddnet documentation for cross compile from -> https://github.com/ddnet/ddnet
Avatar
Avatar
StormA
while trying to cross-compile client on windows to .exe file, it just won't open for some reason... any ideas?
heinrich5991 2024-10-09 12:30
my russian isn't good enough, could you help me?
Avatar
Jupstar ✪ 2024-10-09 12:31
he doesn't care about WASM
12:31
he doesn't need to care about WASM
Avatar
Avatar
heinrich5991
my russian isn't good enough, could you help me?
impossible to launch this application on this pc (edited)
Avatar
heinrich5991 2024-10-09 12:32
do you know which CPU architecture the binary is for and which CPU architecture your computer has? there's probably some way to find out what the actual error in launching was, too…
Avatar
Avatar
Jupstar ✪
I mean someone has to maintain the lua part
heinrich5991 2024-10-09 12:33
and that's where I think a standardized language might be superior, be it lua or javascript
Avatar
Avatar
heinrich5991
and that's where I think a standardized language might be superior, be it lua or javascript
Jupstar ✪ 2024-10-09 12:33
But that makes no sense xD
12:33
It's the same for whoever maintains that project
12:33
ok
12:33
let's do it differently
12:34
let's say i load a .so file and the .so file has all lua stuff
12:34
is it 1. harder for that person 2. just the same as if there is no .so file
Avatar
heinrich5991 2024-10-09 12:34
it'd mean there aren't mutually incompatible mod source bases. also if you start depending on ddnet-pg-lua, then you might be worried if that is maintained forever. but if the lua binding is THE official modding API, then you think that it'll probably stay around
Avatar
Avatar
heinrich5991
it'd mean there aren't mutually incompatible mod source bases. also if you start depending on ddnet-pg-lua, then you might be worried if that is maintained forever. but if the lua binding is THE official modding API, then you think that it'll probably stay around
Jupstar ✪ 2024-10-09 12:35
But that would mean that ddnet maintainers have to maintain it, even if they dislike it. While a cleanly separated project would be maintained by ppl that actually like lua
Avatar
heinrich5991 2024-10-09 12:36
yes. it'd also mean that it'll probably stay maintained, and that people can rely on it
Avatar
Jupstar ✪ 2024-10-09 12:36
And even if we'd accept first class lua support, we could still allow wasm on top, so someone can opt-out of the lua stuff
12:36
bcs the wasm stuff is simply not dominating the source code
12:36
it's a wasm manager, and some macros
12:37
that's it, the rest is normal dd-pg code
Avatar
heinrich5991 2024-10-09 12:37
I'm not super focused on lua tbh btw
Avatar
Avatar
heinrich5991
do you know which CPU architecture the binary is for and which CPU architecture your computer has? there's probably some way to find out what the actual error in launching was, too…
not my pc tho, so i can't, well i mostly sure its exactly cmake problem, cause i'm getting this somehow cmake options -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/mingw64.toolchain and i just relize it compiling as shell fine xd
Avatar
heinrich5991 2024-10-09 12:38
just something that can be edited without installing further programs
Avatar
Im not gonna code gamemodes in lua please spare me
gigachad 1
Avatar
Jupstar ✪ 2024-10-09 12:38
Yes, I am just interested in the arguments for lua or js. I am all for mod support, I guess I kinda hope to demotivate ppl from upstreaming every change they have to make their mods easier to use
12:39
If it makes ddnet code more readable. fine If it adds some weird hacks so they can add some extra parameter to some function.. I dunno 😄
Avatar
Avatar
Jupstar ✪
Yes, I am just interested in the arguments for lua or js. I am all for mod support, I guess I kinda hope to demotivate ppl from upstreaming every change they have to make their mods easier to use
Are you just loading and running a massive wasm blob?
Avatar
Jupstar ✪ 2024-10-09 12:40
Yes
12:40
Well depends on massive
12:40
physics are really small
12:40
but rendering is quite a bit bigger yeah
12:41
rendering is a different problem anyway.. much harder to sandbox etc.
Avatar
I think this is not very modding friendly. To make a mod now you need to rewrite or copy the entire wasm code you have. I think granular hooks are a better way to make userfriendly modding possible
Avatar
Jupstar ✪ 2024-10-09 12:41
I'd already be happy to some day have really good physics modding support
Avatar
Avatar
Learath2
I think this is not very modding friendly. To make a mod now you need to rewrite or copy the entire wasm code you have. I think granular hooks are a better way to make userfriendly modding possible
Jupstar ✪ 2024-10-09 12:42
No wasm code is copied tho. It's the rust code that is copied
12:42
I think granular hooks are a better way to make userfriendly modding possible
Again, this still works
Avatar
Whatever. They need to basically fork your copy and mod it, just the way mods are currently made
Avatar
Jupstar ✪ 2024-10-09 12:42
You can fork the dd-pg physics, add your lua runtime compile to wasm
12:42
and that's it
Avatar
Avatar
Learath2
Whatever. They need to basically fork your copy and mod it, just the way mods are currently made
Jupstar ✪ 2024-10-09 12:42
But they don't need to upstream it
12:43
Bcs the client will have the exact same support
Avatar
Avatar
Learath2
Whatever. They need to basically fork your copy and mod it, just the way mods are currently made
Jupstar ✪ 2024-10-09 12:43
If ddnet wants ddnet physics to be lua friendly, so be it
Avatar
The value is in allowing the client to download a blob from the server. Not the way you pick your hooks
Avatar
Jupstar ✪ 2024-10-09 12:43
That doesn't mean fng has to be
Avatar
Avatar
Learath2
The value is in allowing the client to download a blob from the server. Not the way you pick your hooks
Jupstar ✪ 2024-10-09 12:44
Ok, and for client side prediction you then download lua scripts
12:44
is that better?
12:44
Or is 1MB blob too much traffic
Avatar
Avatar
Jupstar ✪
Ok, and for client side prediction you then download lua scripts
Yes, that's what I would experiment with. I'm not saying your way is wrong. I'm saying it's better UX for the mainline to have easy moddability
Avatar
Jupstar ✪ 2024-10-09 12:46
Ok twgame is currently 2.9 after wasm-strip and wasm-opt calls to it
12:46
2.9MB
Avatar
Avatar
Learath2
Yes, that's what I would experiment with. I'm not saying your way is wrong. I'm saying it's better UX for the mainline to have easy moddability
Jupstar ✪ 2024-10-09 12:47
Yes and i totally don't block that, we can have a repo: ddnet-physics and you can maintain it 😄
12:47
I am not super interested in ddnet as physics anyway.. Enough to play gores if fine for me
12:48
Kaffaine might need different things u can support in ddnet modding anyway
12:48
So he can do his infection-class however he wants, and ddnet as they want
12:48
and chiller can add his epyc stuff as he wants
Avatar
Avatar
Jupstar ✪
Yes and i totally don't block that, we can have a repo: ddnet-physics and you can maintain it 😄
This is the issue. I'm saying the MAINLINE needs to have good moddability UX. Not a fork, what if we go away and you break some api promise? Now all lua mods are broken
Avatar
Jupstar ✪ 2024-10-09 12:48
and all are happy
12:48
until someone wants to change the interface lol
Avatar
Avatar
Learath2
This is the issue. I'm saying the MAINLINE needs to have good moddability UX. Not a fork, what if we go away and you break some api promise? Now all lua mods are broken
Jupstar ✪ 2024-10-09 12:49
But what if MAINLINE has a bug in the API.. then it might also break everything
Avatar
Anyway, your project, your rules. Knock yourself out. I'm just telling you what I would experiment with
Avatar
Jupstar ✪ 2024-10-09 12:49
I trust other devs as much as a trust myself
12:49
NOT AT ALL
Avatar
Avatar
Learath2
Anyway, your project, your rules. Knock yourself out. I'm just telling you what I would experiment with
Jupstar ✪ 2024-10-09 12:50
And I am just saying that I feel like my idea is a superset of what you want and thus not blocking your idea
Avatar
It's not blocking technically, but it requires the modders to trust a second third party repo
12:51
Now your mod is on shaky ground because it depends on 2 layers of api provided by distinct vendors
Avatar
Avatar
Learath2
Now your mod is on shaky ground because it depends on 2 layers of api provided by distinct vendors
Jupstar ✪ 2024-10-09 12:52
but in minecraft it kinda works too, bcs the modding community simply decided that they get what they need. So mojang can still do whatever the shit they want. And they even break the game very often. Smth ddnet will probs not do (as much at least)
Avatar
Again, I do not care particularly what you do. It's your business. I'm just letting you know my opinion on it
Avatar
Jupstar ✪ 2024-10-09 12:52
Yes
12:53
All fine
Avatar
Avatar
Jupstar ✪
but in minecraft it kinda works too, bcs the modding community simply decided that they get what they need. So mojang can still do whatever the shit they want. And they even break the game very often. Smth ddnet will probs not do (as much at least)
In this case there is one vendor you can't interact with at all. So the stable middleman is the best you can do. It's better than nothing, but is it as good as a first party api, unlikely, you can see how often stuff breaks on updates
Avatar
Jupstar ✪ 2024-10-09 12:55
Sure but I don't see how ddnet never breaks their API ever
Avatar
There is also a bit of a performance concern as you keep adding on layers, though I doubt it's bad enough to consider
Avatar
Jupstar ✪ 2024-10-09 12:55
Do you want to first try a perfect API or what
Avatar
Avatar
Learath2
There is also a bit of a performance concern as you keep adding on layers, though I doubt it's bad enough to consider
Jupstar ✪ 2024-10-09 12:56
Sure, benchmarking is always important
12:56
for example: The rendering module is defs slower than the physics module, bcs it interacts much more with the client
12:57
(Or with outside apis, fs, graphics etc.) (edited)
Avatar
Avatar
Jupstar ✪
Do you want to first try a perfect API or what
No, but you can version an api, you can be considerate with how you make changes. With Microsoft and Minecraft you get 0 promises. With dd-pg and dd-pg-lua you have already implied that you don't care much about a lua layer on top. How much would you care about that layers stability? Is it better than Microsoft, sure. Is it better than you personally being responsible for it's stability, unlikely
12:59
I'm just not a huge fan of third party middleware
Avatar
Avatar
Learath2
No, but you can version an api, you can be considerate with how you make changes. With Microsoft and Minecraft you get 0 promises. With dd-pg and dd-pg-lua you have already implied that you don't care much about a lua layer on top. How much would you care about that layers stability? Is it better than Microsoft, sure. Is it better than you personally being responsible for it's stability, unlikely
Jupstar ✪ 2024-10-09 13:00
I personally would not maintain the lua api anyway, so it's more about other ddnet maintainers anyway. So why should it even be my problem, I don't directly understand 😄
13:00
Like if you think it has to be stable, you can invest as much time as you want
13:00
Totally fine by me
13:00
Your project defines the stability of the LUA API
13:00
not dd-pg
Avatar
Avatar
Jupstar ✪
I personally would not maintain the lua api anyway, so it's more about other ddnet maintainers anyway. So why should it even be my problem, I don't directly understand 😄
Exactly, you don't care, you break an api promise, dd-pg-lua can no longer provide a lua api they used to provide, now mods broke
Avatar
Avatar
Learath2
Exactly, you don't care, you break an api promise, dd-pg-lua can no longer provide a lua api they used to provide, now mods broke
Jupstar ✪ 2024-10-09 13:01
Well why was the API break needed? How did lua prevent this from breaking
13:01
I don't understand your point tbh
13:01
The lua api can maybe workaround the API change
Avatar
E.g. say you decided to multithread the server, now I can no longer provide a sync teleport function because all entity teleports are async now
Avatar
Avatar
Learath2
Exactly, you don't care, you break an api promise, dd-pg-lua can no longer provide a lua api they used to provide, now mods broke
Jupstar ✪ 2024-10-09 13:02
If the mods are only lua files then this is probably as easy as replacing a binary bob or not?
Avatar
Avatar
Learath2
E.g. say you decided to multithread the server, now I can no longer provide a sync teleport function because all entity teleports are async now
Jupstar ✪ 2024-10-09 13:03
Uff
13:03
But that isn't an API break
13:03
that is a new game xD
Avatar
Anyway, I don't like this sort of relationship to begin with. Middleware that the mainline doesn't care about is doomed to fall out of sync and die off
Avatar
Jupstar ✪ 2024-10-09 13:04
I can still make fng multi threaded, if the multi threaded ends exactly when Tick() ends
13:04
Bcs then it's part of the FNG physics module not the server code
Avatar
Avatar
Learath2
Anyway, I don't like this sort of relationship to begin with. Middleware that the mainline doesn't care about is doomed to fall out of sync and die off
Jupstar ✪ 2024-10-09 13:05
Well honestly I don't even completely understand your problem. If there is an API change that affects the LUA API then that API change was really needed or not
13:05
I still try to make a teeworlds game
13:05
and not a 3D game engine
Avatar
Avatar
Jupstar ✪
Well honestly I don't even completely understand your problem. If there is an API change that affects the LUA API then that API change was really needed or not
You are thinking too concretely. You have a wasm api, I use your wasm api to provide a lua api. If you break your promise to me, I now have to (if possible) work around it to keep my promise to my users I would rather not take part in this sort of relationship
13:10
IMO these sort of things ideally belong in the upstream
Avatar
Avatar
Learath2
You are thinking too concretely. You have a wasm api, I use your wasm api to provide a lua api. If you break your promise to me, I now have to (if possible) work around it to keep my promise to my users I would rather not take part in this sort of relationship
Jupstar ✪ 2024-10-09 13:10
But what promise exactly do you break? That if they update the game, also have to update the wasm blob? The lua scripts stay untouched if you didn't break the lua API or not?
Avatar
Avatar
Jupstar ✪
But what promise exactly do you break? That if they update the game, also have to update the wasm blob? The lua scripts stay untouched if you didn't break the lua API or not?
If I can't work around your change now the lua mods need updating. Just like in minecraft
Avatar
Avatar
Learath2
If I can't work around your change now the lua mods need updating. Just like in minecraft
Jupstar ✪ 2024-10-09 13:12
But I cannot really imagine a case here. What changes that you need to break the LUA api too? Like if the player name is allowed to be longer, that doesn't break your API
Avatar
Anyway, I have wasted enough company time on this. I need to go write tests
Avatar
Jupstar ✪ 2024-10-09 13:13
Ok, sry to disturb you, I really just try to understand
Avatar
Avatar
Jupstar ✪
But I cannot really imagine a case here. What changes that you need to break the LUA api too? Like if the player name is allowed to be longer, that doesn't break your API
Idk your exact api so it's hard for me to give you a concrete example. Say you were providing an OnRender hook for characters. Then you found a sick optimization that gave you 900% better performance if you batch render all the characters at once. I used to provide this OnRender hook to my downstream lua clients. You no longer even have this hook, it's now just not available
13:17
I have a feeling you keep your blobs even larger so that specific example probably isn't possible. But it's just an example
Avatar
Jupstar ✪ 2024-10-09 13:17
Then you have to work around it or break API yes. But does it help that the code is upstream? I'd be in the same situation or couldn't even optmize it, which sounds even worse IMO
Avatar
Avatar
Learath2
I have a feeling you keep your blobs even larger so that specific example probably isn't possible. But it's just an example
Jupstar ✪ 2024-10-09 13:17
Yes they are bigger than that indeed
13:18
I try to minize the size of the interface, for rendering it's currently like 3 functions For physics it's a bit bigger, with player_join, leave etc.
13:18
But rendering takes smth similar to a snapshot (just for rendering), which could defs break between versions
Avatar
Avatar
Jupstar ✪
Then you have to work around it or break API yes. But does it help that the code is upstream? I'd be in the same situation or couldn't even optmize it, which sounds even worse IMO
You'd be motivated to find a way to still provide it or provide a replacement. It's an incentives thing, by making you commit to an api, you create trust in downstream users
13:19
I really gotta go, this needs to be merged tonight or this russian product manager will actually get mad
Avatar
Avatar
Learath2
I really gotta go, this needs to be merged tonight or this russian product manager will actually get mad
justatest
Avatar
Avatar
Learath2
You'd be motivated to find a way to still provide it or provide a replacement. It's an incentives thing, by making you commit to an api, you create trust in downstream users
Jupstar ✪ 2024-10-09 13:20
Well I think API changes are more than fine, just not every other day. If deprecation is possible i'd try that first. Else I need to tell the users somehow. But there is no perfect API, especially not with something as critical as rendering. Rendering changes very often.. I guess most changes in ddnet are rendering related actually. Some weird indicator here, some other stuff there
Avatar
Avatar
Learath2
I really gotta go, this needs to be merged tonight or this russian product manager will actually get mad
Jupstar ✪ 2024-10-09 13:21
Yeah yeah leave
13:21
Good bye
Avatar
Avatar
Jupstar ✪
Well I think API changes are more than fine, just not every other day. If deprecation is possible i'd try that first. Else I need to tell the users somehow. But there is no perfect API, especially not with something as critical as rendering. Rendering changes very often.. I guess most changes in ddnet are rendering related actually. Some weird indicator here, some other stuff there
Sounds like you want proper version control for server, client and Api support (just like Minecraft), allows for backwards compat and provides a stable version of everything
13:22
Just annoying to setup
Avatar
Avatar
Jupstar ✪
Well I think API changes are more than fine, just not every other day. If deprecation is possible i'd try that first. Else I need to tell the users somehow. But there is no perfect API, especially not with something as critical as rendering. Rendering changes very often.. I guess most changes in ddnet are rendering related actually. Some weird indicator here, some other stuff there
There is value to a stable api. If you put 0 value to it, it would be worth breaking at every step. It's hard to figure out the exact value but sometimes 2% better performance is maybe not worth breaking an api, especially if it can't be worked around
13:22
Okok I will actually put this phone away from my desk because I can't control myself
Avatar
Avatar
meloƞ
Sounds like you want proper version control for server, client and Api support (just like Minecraft), allows for backwards compat and provides a stable version of everything
Jupstar ✪ 2024-10-09 13:23
Would be cool too, but as said it's not like I want to break the API every other day. Maybe better reject some features than to add random changes that nobody uses and break the API
Avatar
Avatar
Learath2
Okok I will actually put this phone away from my desk because I can't control myself
poggers2 kek addict, go work!
Avatar
You can respon. I'll read tonight
Avatar
Avatar
Jupstar ✪
Would be cool too, but as said it's not like I want to break the API every other day. Maybe better reject some features than to add random changes that nobody uses and break the API
Fair
Avatar
Avatar
Learath2
There is value to a stable api. If you put 0 value to it, it would be worth breaking at every step. It's hard to figure out the exact value but sometimes 2% better performance is maybe not worth breaking an api, especially if it can't be worked around
Jupstar ✪ 2024-10-09 13:23
Sure. I guess in some sense it's easier for physics to stay stable than rendering tho. Rendering is simply super hard xD
13:23
Maybe simply don't provide lua support there if api changes are not acceptable
13:24
Or lua support only that doesn't touch existing rendering pipelines. E.g. extra components only
👍 1
Avatar
I actually thought ddpg was something I don't know rather than a wip
15:12
So what does pg stand for
15:12
poggers2
Avatar
Pog
Avatar
dunno
15:13
just guessing
Avatar
heinrich5991 2024-10-09 15:13
playground
Avatar
Avatar
Pioooooo
So what does pg stand for
MilkeeyCat 2024-10-09 15:22
postgresql
Avatar
heinrich5991 2024-10-09 15:57
I'm a professional Rust programmer and I admit I'm a bit of an evangelist. So you can imagine my pain when my little sister with very little programming experience said she wanted me to teach her C++…
Avatar
cpp borrow checker incoming
🫡 1
16:06
time to throw rust out if the windows
16:06
kek
16:06
of
Avatar
what api endpoint does the client use to check for the latest ddnet version? (edited)
Avatar
Avatar
jxsl13
what api endpoint does the client use to check for the latest ddnet version? (edited)
It's in the info json iirc
16:43
Yes it is
16:46
hm, there is something at the bottom
16:47
is there a way to calculate the version flag from that version number? like 18.6 -> blub? or is that flag version manually incremented?
Avatar
Avatar
jxsl13
is there a way to calculate the version flag from that version number? like 18.6 -> blub? or is that flag version manually incremented?
Not sure what you mean with version flag. The client uses the ToVersion function in client.cpp to parse the version string to compare it
Avatar
18060
17:19
is what I meant by version flag (edited)
17:19
it's not a flag, tho
Avatar
You can mostly convert the string to integer version, but IIRC there is at least one version where the integer version doesn't follow the correct scheme
Avatar
just want to vonvert the version from https://info.ddnet.org/info
17:21
that should work for the near future, I guess
17:22
convert
Avatar
Yeah, then you could parse the string into X.Y.Z (with Z being 0 if not set) (like ToVersion) then calculate the code as X * 1000 + Y * 10 + Z I guess
👍 1
Avatar
Hi guys, tell me please how to make a "Bomb tag" Server
Avatar
Avatar
! sqwinix
Hi guys, tell me please how to make a "Bomb tag" Server
Hellou :3
Avatar
Avatar
DDNet
Hellou :3
stfu
Avatar
Avatar
jxsl13
what api endpoint does the client use to check for the latest ddnet version? (edited)
heinrich5991 2024-10-09 17:37
what are you trying to do? ^^
Avatar
@heinrich5991 if(ANTIBOT) # Allow the antibot library to use functions from the server binary. add_cxx_compiler_flag_if_supported(OUR_FLAGS_LINK -rdynamic) set_own_rpath(game-server) endif() Properly works only on linux, windows linker not gaining access to game-server. Not sure if someone builds AB on windows, but worth mentioning
Avatar
@heinrich5991 it seems we ran out of bans MAX_BANS = 1024, could you somehow bump this?
banhammer 3
17:44
Also it seems we fail very silently on this, it says "banned" but it doesn't ban
Avatar
heinrich5991 2024-10-09 17:45
sounds good, we can bump this
17:45
we might want to check for old leftover bans though, too
Avatar
Avatar
heinrich5991
what are you trying to do? ^^
well, that's a secrent 😮
17:45
secret
Avatar
Avatar
jxsl13
well, that's a secrent 😮
think_bot
Avatar
Avatar
heinrich5991
sounds good, we can bump this
Bump limit of master server payload
Avatar
is it intended that you can use any character as gametype / map name?
Avatar
Jupstar ✪ 2024-10-09 18:28
I would not rely on that
18:30
Does the map file downloaded by the client also use utf8 chars?
18:30
Or only a server browser cheat
Avatar
thats the map name
Avatar
Jupstar ✪ 2024-10-09 18:31
Mh, that sucks xd
18:31
I banned utf8 for filenames in rs version xd
Avatar
Avatar
fokkonaut
thats the map name
hey, it's my map
18:35
lol its #1 if you server order by map name (DESC)
18:35
I didn't know
Avatar
Avatar
Matodor
lol its #1 if you server order by map name (DESC)
#2 actually, and no, i used a little hack to include the header
18:36
Avatar
Ah
18:38
i didnt understand you correctly
Avatar
well, I wasn't trying to get to the top, I just made a map in the shape of a triangle)))
Avatar
GitHub BOT 2024-10-09 18:39
Also add a very basic test case for sqlite in the game server. Improve rename test for game server
Avatar
Avatar
heinrich5991
sounds good, we can bump this
I'm out and as far as I understand all new bans are failing until either this is bumped or some old ones are cleared out if there are any
Avatar
GitHub BOT 2024-10-09 18:48

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssan...
Avatar
heinrich5991 2024-10-09 18:48
@Learath2 ^
Avatar
Avatar
GitHub
Click to see attachment 🖼️
Avolicious 2024-10-09 18:48
it gets spammed with DNSBL stuff, no?
Avatar
Avatar
heinrich5991
@Learath2 ^
I'm guessing the hashlist bucket size is "good enough", right?
Avatar
heinrich5991 2024-10-09 18:49
ah, true, dnsbl also goes in there. but only for 10 minutes, so it should be fine
Avatar
Avolicious 2024-10-09 18:49
But in case of an attack, it gets filled up
18:50
I am not sure if it is suitable, but maybe a local DNS server can cache the dns entry for a specific TTL
18:50
Then all servers on the same machine can use this cached thingy & we dont have to store any ban in the BANS
Avatar
Jupstar ✪ 2024-10-09 18:51
when do we get a crates.io bot 😏
Avatar
Avatar
fokkonaut
is it intended that you can use any character as gametype / map name?
Avolicious 2024-10-09 18:52
Lol, I thought this arrow up is some sort of "sorter" 😄
Avatar
When master server payload's size bump (edited)
18:53
54dd75c Add sqlite support (to game server & base-sql lib). - Jupeyy 394c342 Merge pull request #3 from Jupeyy/pr_sqlite_support - Jupeyy
Avatar
Avatar
GitHub
Click to see attachment 🖼️
@cyberfighter 2 its so over
Avatar
Avatar
GitHub
Click to see attachment 🖼️
The CI pipeline is reeeeaaal long 😄
Avatar
cant wait to hit 2048 bans and have to update the limit again
Avatar
Jupstar ✪ 2024-10-09 19:14
you want to imply a soft limit is better
19:14
aint no way
19:14
4096
Avatar
nope, its just funny that you can run out of bans
Avatar
Jupstar ✪ 2024-10-09 19:14
8192
Avatar
yep, 8192 bans would be enough
Avatar
Avatar
keb
nope, its just funny that you can run out of bans
Jupstar ✪ 2024-10-09 19:15
why nope xd
Avatar
Avatar
Jupstar ✪
why nope xd
clearly you dont want some admin to ban every single ip in the game
19:16
that's what the max bans for!
Avatar
Avatar
keb
clearly you dont want some admin to ban every single ip in the game
cyberfighter 2 2024-10-09 19:17
ban range exists tho
Avatar
how does the release process work for the ddnet repo? (edited)
Avatar
cyberfighter 2 2024-10-09 19:17
you can ban 0.0.0.0 - 255.255.255.255
Avatar
just tagging will trigger the full build chain?
19:18
do tags need a specific format?
Avatar
We don't have automatic deployment
Avatar
deen makes them by hand
19:19
iirc
Avatar
no auto artifacts in the github release section?
Avatar
cuz the ddnet CI never exports artifacts
Avatar
For the server we deploy whatever commit we want by hand when needed
😃 1
19:20
windows builds always have deen’s user account name in the debug asserts
😂 1
Avatar
For the client we have an rc process which deen runs by hand
Avatar
I assume it’s built on a vm or dev machine of his
Avatar
so it's not possible to trigger the ci pipeline and get it to build all binaries for me D:
19:21
for all OSes
Avatar
you could make it do that fairly easy
Avatar
Avatar
Ewan
cuz the ddnet CI never exports artifacts
Jupstar ✪ 2024-10-09 19:21
?
19:21
the CI exports artifacts
Avatar
I think there are problems with the macOS CI artifact, but the others should work
Avatar
where do u get them
Avatar
Nope, they are not how we build anyway, we crossbuild. But yes you can grab the ci artifacts if you want
Avatar
Jupstar ✪ 2024-10-09 19:21
in every github action u can download them
Avatar
Avatar
Ewan
where do u get them
Expand the "Upload Artifacts" step in the log
19:22
(maybe scroll)
Avatar
I now wonder if you need some permissions in the repo to get those 🤔
Avatar
Jupstar ✪ 2024-10-09 19:22
& u need gh acc to download them
Avatar
Avatar
Learath2
I now wonder if you need some permissions in the repo to get those 🤔
Jupstar ✪ 2024-10-09 19:22
no
19:23
i often share my builds with randoms xd
Avatar
Avatar
Ewan
where do u get them
you need to be logged into your account to see/download them
Avatar
those artifacts would be enough for me
Avatar
Avatar
Tater
you need to be logged into your account to see/download them
that's indeed true
Avatar
But the official builds are not done like that. So don't expect them to be reproduced
Avatar
Jupstar ✪ 2024-10-09 19:25
also the windows builds use microsoft tools
19:25
so they are less open source 😬
Avatar
When MSYS2 CI justatest
Avatar
Actually might even behave differently in some edgecases now that I think about it. There are some mingw quirks (edited)
Avatar
Avatar
Robyt3
When MSYS2 CI justatest
Jupstar ✪ 2024-10-09 19:26
If it doesnt take 3h to build then xD
19:26
Omg i already fear the CI of dd-pg
19:26
5h or smth
kek 1
19:26
even on my vps it takes 30mins
19:26
and i think it's faster than gh actions xD
19:27
but at least it doesn't need clang-tidy hehehe
Avatar
those pipelines take forever D:
Avatar
Avatar
Jupstar ✪
but at least it doesn't need clang-tidy hehehe
Clippy much faster
Avatar
Avatar
Learath2
Clippy much faster
Jupstar ✪ 2024-10-09 19:28
No need for static analyzer at all 😄
19:29
The compiler does the same
Avatar
Wtf, @Ryozuki scold him rn, he is breaking holy rust rules
Avatar
Jupstar ✪ 2024-10-09 19:29
I guess xd
Avatar
GitHub BOT 2024-10-09 19:29
7e04b8c Allow 2048 bans, we hit the limit of 1024… - heinrich5991 94b23af Merge pull request #9133 from heinrich5991/pr_ddnet_2048_bans - Learath2
Avatar
Avatar
Learath2
Wtf, @Ryozuki scold him rn, he is breaking holy rust rules
Jupstar ✪ 2024-10-09 19:29
Ryo the rust prophet
Avatar
Avatar
GitHub
Click to see attachment 🖼️
Wooooo, CI done
Avatar
Jupstar ✪ 2024-10-09 19:30
took 35min
Avatar
heinrich5991 2024-10-09 19:31
to run the CI twice
Avatar
Jupstar ✪ 2024-10-09 19:31
ez
Avatar
heinrich5991 2024-10-09 19:31
for whatever reason, github merge queue doesn't fast-forward when the commit has already been tested…
19:31
must be at least a couple of percent of compute they could save by fixing this
Avatar
Avatar
GitHub
Click to see attachment 🖼️
Jupstar ✪ 2024-10-09 19:32
so then we can assume half the time? then rust is really slow xD the account stuff already took 14mins
19:33
i mean it has to build a http server and tokio and shit, but rip xd
Avatar
heinrich5991 2024-10-09 19:34
this will be fun to build on the servers ^^
19:34
they have slow CPUs
Avatar
Avatar
Jupstar ✪
so then we can assume half the time? then rust is really slow xD the account stuff already took 14mins
Rust is definitely not winning build time olympics
Avatar
heinrich5991 2024-10-09 19:34
even the mastersrv rebuild takes ages
Avatar
Jupstar ✪ 2024-10-09 19:34
Avatar
Lets port the account server to portable c99
Avatar
Avatar
Learath2
Rust is definitely not winning build time olympics
Jupstar ✪ 2024-10-09 19:35
Yeah, but the good is, when it compiles it checked lot of stuff and often works 😄
Avatar
Avatar
Learath2
Lets port the account server to portable c99
Jupstar ✪ 2024-10-09 19:35
for ddnet-cpp we could really just include them as c lib
19:35
cxx is too complicated for me xD
Avatar
Or account server in turbopascal
Avatar
Jupstar ✪ 2024-10-09 19:36
yeah pascal really compiles fast.. and the syntax is bit like rust xd
19:36
but sometimes so insanely verbose xD
19:36
procedure
19:36
begin (edited)
19:36
end
19:37
i really hate that discord does not have a hover color for msgs. When i have it in maximized mode i always have to guess hard which like i hit xD
19:37
Avatar
heinrich5991 2024-10-09 19:37
hmmm when I hover discord messages, they get colored differently
Avatar
Avatar
heinrich5991
hmmm when I hover discord messages, they get colored differently
Jupstar ✪ 2024-10-09 19:37
in browser?
Avatar
heinrich5991 2024-10-09 19:37
electron
Avatar
Jupstar ✪ 2024-10-09 19:38
oh ok
19:38
in browser
Avatar
heinrich5991 2024-10-09 19:38
I guess you also get some highlighting with the timestamp (edited)
Avatar
Jupstar ✪ 2024-10-09 19:39
yeah true
19:39
can also just rightclick the msg
19:39
with rightclick i also get color, nice
Avatar
Avatar
heinrich5991
this will be fun to build on the servers ^^
Jupstar ✪ 2024-10-09 19:40
btw do you build all ddnet servers on the target vps?
Avatar
heinrich5991 2024-10-09 19:40
I think we changed it to all build on the strongest one
19:41
but the strongest one is still not very strong
19:41
ah, I guess ger2 would be strongest. but we build on ddnet.org
Avatar
Jupstar ✪ BOT 2024-10-09 19:41
don't they use the same debian version? xd
19:42
with rust i can luckily build them locally and just upload, even on newer debians
19:42
fcking discord down again for me
19:42
lmao
19:42
in west germany they often have problems xD
Avatar
heinrich5991 2024-10-09 19:42
they all use the same debian version, yes
Avatar
can someone point me to the file where the client sends its ddnet version to the server
Avatar
heinrich5991 2024-10-09 19:48
can I help you find it yourself?
Avatar
you can
Avatar
heinrich5991 2024-10-09 19:50
do you know which version number (numerically) the client sends that you have currently checked out?
19:50
if so, look for that number in the source code
Avatar
it's the latest ddnet master branch
19:50
I found the makro
19:50
macro
Avatar
heinrich5991 2024-10-09 19:51
then look for where that macro is used
Avatar
that's what I also already found
Avatar
heinrich5991 2024-10-09 19:52
it's used in one message and one function
19:52
where is that function used?
Avatar
might need to look for where those const methods are called
19:52
of CGameClient
Avatar
heinrich5991 2024-10-09 19:52
you can search the source code for DDNetVersion() to find the places
19:53
although I do wonder what you're up to
19:54
the version is used for backward compatibility stuff
Avatar
wanna make that version dynamic
Avatar
heinrich5991 2024-10-09 19:54
don't mess with it to much
19:54
why? that messes with backward compatibility…
Avatar
There is lots of versiongated behaviour. If you are not careful you'll break a lot
Avatar
will then probably set the version to one that's higher than the latest released one
19:55
that's fine
Avatar
heinrich5991 2024-10-09 19:55
I guess I'll have to enable the "newer than latest release version" kick again
19:56
why even make it dynamic? it's a static property of the client what it supports. that's why the version number should also be static
Avatar
you can do whatever. that's just a potential client for a rudementary "trusted client" for the gctf league matches
19:56
just some version magic or whatever
Avatar
heinrich5991 2024-10-09 19:57
could you choose a non-dynamic version number instead?
19:58
e.g. the version number this is based on + 1?
Avatar
I mean, what's the point them 😄
Avatar
heinrich5991 2024-10-09 19:59
what is the point?
Avatar
time required to reverse engineer
20:00
is the point
Avatar
heinrich5991 2024-10-09 20:00
the point of not dynamically choosing the newest release version plus one is that you break backward compatibility
20:00
because the client advertises features it cannot deal with
20:00
can you accept my friend request?
Avatar
it's a one time use client. nobody is supposed to play with it more than for the gctf stuff
Avatar
Avatar
heinrich5991
can you accept my friend request?
sure
Avatar
heinrich5991 2024-10-09 20:02
(doesn't look like you did, can't send you a DM)
Avatar
Did I post a weird ancient english word today?
Avatar
heinrich5991 2024-10-09 20:04
if it's one-time use only, why not set a static version number?
20:04
the dynamic newest ddnet version number is not going to change during the event
20:05
so it's static for the event in any case
Avatar
Avatar
Learath2
Did I post a weird ancient english word today?
dont think so
20:14
but i also couldnt handle the offtopic brainrot
20:14
so i muted it
Avatar
I do it in developer now, the russians took over
Avatar
Avatar
Learath2
Useless English word of the day: loquacious, means talkative
I did apparently. Will have to wait until midnight
Avatar
heinrich5991 2024-10-09 20:35
where do you get those from?
Avatar
his test or smth
Avatar
GitHub BOT 2024-10-09 20:48
3f67679 Add rcon commands (un)infinite_jump, practice commands /(un)infjump - Pioooooo 76e7317 Merge pull request #9114 from Pioooooo/infjump-command - def-
Avatar
Avatar
heinrich5991
where do you get those from?
heinrich5991 2024-10-09 20:48
@Learath2 ping
Avatar
Avatar
heinrich5991
@Learath2 ping
I'm studying for the GRE
20:50
wtf are those words. why are they required for that?
Avatar
Avatar
heinrich5991
wtf are those words. why are they required for that?
The test is made by stupid people to scam people out of money
Avatar
heinrich5991 2024-10-09 20:50
The cost to take the test is US$205,[6]
Avatar
Avatar
Learath2
The test is made by stupid people to scam people out of money
heinrich5991 2024-10-09 20:51
that does not sound like stupid people 🤔
Avatar
It's one test that is supposed to measure ones admissibility to ANY graduate program. If you want to study 18th century english literature, you take this test. If you want to study finance at Harvard you take this test
20:52
So for it to be able to measure english majors it needs to have stupidly specific english in it too
Avatar
heinrich5991 2024-10-09 20:52
that sounds stupid
Avatar
Avatar
heinrich5991
that sounds stupid
Atleast that's their reasoning. I think the design of the test is stupid
Avatar
heinrich5991 2024-10-09 20:52
good that you need to do an intelligence test after doing a bachelors at a reasonable university
Avatar
Avatar
heinrich5991
good that you need to do an intelligence test after doing a bachelors at a reasonable university
It's not very popular in the EU except for business/finance masters
20:54
It's so bad at measuring for top level courses that all the top level courses have quant scores maxed out. MIT Msc in Finance has 168 as a minumum quantitative reasoning score out of 170
20:54
170 is the 96th percentile. It's just bad at measuring people in general
20:56
Idk if I want to do a masters yet tbh. But I'm taking it just in case. I just don't really know what I want to do with my life 😄
20:58
Maybe I'll do an MBA just to spend some time and think of what's next
21:02
Have you ever felt like the Internet Archive runs on sticks and is constantly on the verge of suffering a catastrophic security breach? It just happened. See 31 million of you on HIBP!
Avatar
Ouch
Avatar
heinrich5991 2024-10-09 21:03
let's hope it's just some defacing
Avatar
I didn't have an account thankfully
Avatar
heinrich5991 2024-10-09 21:03
well, I'm logged in on archive.org, guess my account is breached now
21:03
any suggestions?
21:04
cookies aren't httponly
21:04
nice
Avatar
Hopefully they aren't stupid enough to store plaintext passwords. So nothing to really do
21:04
Even if you lost your cookie it's only your archive.org account
Avatar
Avatar
Learath2
So for it to be able to measure english majors it needs to have stupidly specific english in it too
do the english majors also need to learn mathematics then?
Avatar
heinrich5991 2024-10-09 21:05
yes, would be annoying, I backed up youtube ddnet videos there
Avatar
Avatar
Tater
do the english majors also need to learn mathematics then?
Their unis probably don't care much about the quant part of the score
Avatar
Jupstar ✪ 2024-10-09 21:06
I hope i never created an acc there and forgot about it xD
Avatar
But if they want a good overall score, yes they do need to learn math. 😄
21:07
The math is trivial if you have uni level math, it's a very bizarre exam. It's like it's for measuring high school math level
21:07
But it's for graduate level programs, idk maybe americans really dont learn math well
Avatar
Jupstar ✪ 2024-10-09 21:08
I have 4 breach warnings, and from none of them i ever got an email that their data was leaked xd
Avatar
Avatar
Jupstar ✪
I have 4 breach warnings, and from none of them i ever got an email that their data was leaked xd
Me neither
21:08
I have more than 4
21:11
looks like my account data is safe(?)
Avatar
Jupstar ✪ 2024-10-09 21:12
i dont understand
21:12
explain
Avatar
Avatar
heinrich5991
heinrich5991 2024-10-09 21:13
(only visit in private mode or if you're not logged in)
21:13
archive.org seems to run third-party scripts on their domain, probably accidentally
21:18
Given that RFC 3559 has been accepted, t-lang has approved the concept of provenance to exist in the language. So I think it&#39;s time that we stabilize the strict provenance and exposed prove...
Avatar
hm, as robyt3 already said, the macOS build is broken
Avatar
Avatar
heinrich5991
Nice, I don't have a use for it but nice that it's finally there
Avatar
hm, guess imma build locally
Avatar
Avatar
jxsl13
hm, guess imma build locally
It's non-trivial if you are not building directly on macOS btw
Avatar
i am
21:29
thankfully
Avatar
Make sure you have build for aarch64 and amd64
Avatar
heinrich5991 2024-10-09 21:29
a build for amd64 would suffice, no?
Avatar
doesn't the default cmake build do that?
21:30
I'm on m2
21:31
doesn't default cmake + make .j whatever build for both :o?
21:31
-j
Avatar
Avatar
heinrich5991
a build for amd64 would suffice, no?
I guess it would run fine under rosetta yeah
Avatar
Avatar
jxsl13
doesn't default cmake + make .j whatever build for both :o?
heinrich5991 2024-10-09 21:31
not sure, I'd guess no, but no idea
Avatar
-DCMAKE_BUILD_TYPE=[Release|Debug|RelWithDebInfo|MinSizeRel]
21:33
release it is, ig
Avatar
heinrich5991 2024-10-09 21:35
that's the default if you don't pass any
Avatar
hm, ok (Y)
Avatar
Jupstar ✪ 2024-10-09 21:54
who broke nightly build
justatest 2
21:56
@deen dunno why but steam build is broken in nightly for linux
21:56
(data dir doesn't exist at all)
22:06
kek 2
22:06
same on windows
Avatar
@chilleroni peperoni. I invited you to a repo. can you update your league servers to that version if possible
Avatar
Jupstar ✪ 2024-10-09 22:11
i bet the upload failed again
22:11
that happened quite often in the past
Avatar
so that we can make sure that people use a trusted client for the next matches
Avatar
heinrich5991 2024-10-09 22:12
chillerdragon
Avatar
k, now we need to host those executables somewhere 😄 first tests look great, big thanks heinrich5991
❤️ 1
22:30
server executables can be downloaded here.
22:31
for now, might move to the league website at some more sane time of the day.
22:34
big thanks to heinrich (Y) for helping with the trusted client
Avatar
(for context, there already are the first accusations of cheating in the league games, that's why the modded client and server)
Avatar
heinrich5991 2024-10-09 23:25
Internet Archive's "The Wayback Machine" has suffered a data breach after a threat actor compromised the website and stole a user authentication database containing 31 million unique records.
23:25
@haveibeenpwned Let me share more on the chronology of this: 30 Sep: Someone sends me the breach, but I'm travelling and didn't realise the significance 5 Oct: I get a chance to look at it - whoa! 6 Oct: I get in contact with someone at IA and send the data, advising it's our goal to load
Avatar
who is BlackMeta? what good reason is there to ddos the internet archive
Avatar
Avatar
Ewan
who is BlackMeta? what good reason is there to ddos the internet archive
cia
Avatar
what motive does the cia have to dump IA database?
Exported 647 message(s)
Timezone: UTC+0