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-01-05 00:00:00Z and 2024-01-06 00:00:00Z
Avatar
what’s up fokko
02:26
owo
Avatar
I use arch btw
poggers2 2
Avatar
early morning
Avatar
Avatar
Ryozuki
early morning
helo
06:21
okay lets start off the day by programming some bots
Avatar
morning
☕ 3
🍵 3
06:24
🐴
Avatar
im actually drinking tea but i dont like the discord emoji for tea
06:56
so coffee it is
Avatar
I’m drinking water
07:00
about to go to bed
Avatar
რილია 2024-01-05 07:42:47Z
hi everyone
Avatar
რილია 2024-01-05 07:45:19Z
is there a program or command or something that i can run beside my server to show what function will get called on variety of event like; kill, tile collision, projectile ......
Avatar
i assume you mean something like a debugger?
Avatar
რილია 2024-01-05 07:46:34Z
yes
Avatar
depends on what IDE are you using. (edited)
Avatar
რილია 2024-01-05 07:47:04Z
vs code
07:47
but
07:47
i want something that i can run it beside my ./DDnet-Server command on my shell
07:48
don't care about vscode
Avatar
you can use gdb. you can also make it visual with vscode. so you can step through your code and check values etc.
07:52
there are also other frontends for gdb such as https://github.com/nakst/gf
A GDB frontend for Linux. Contribute to nakst/gf development by creating an account on GitHub.
Avatar
რილია 2024-01-05 07:54:00Z
what do you use for debugging ?
07:54
for c++
Avatar
chillerdragon BOT 2024-01-05 07:55:24Z
Explain emoji pls
Avatar
Avatar
რილია
what do you use for debugging ?
Gdb is the very best
Avatar
chillerdragon BOT 2024-01-05 07:56:42Z
And asan is epic too if the gdb backtracked are not making sense
Avatar
რილია 2024-01-05 07:56:55Z
is it stands for gnu debugger ?
Avatar
Very rarely I’ll also enable the tui using tui enable in gdb, it’s useful if you have only one screen
Avatar
Avatar
რილია
is it stands for gnu debugger ?
Yes
Avatar
Avatar
chillerdragon
And asan is epic too if the gdb backtracked are not making sense
Asan, ubsan and valgrind are also indispensable yep
Avatar
რილია 2024-01-05 07:58:47Z
thank you guys
Avatar
chillerdragon: dat was a horse
Avatar
lldb is nice too
08:04
if u debug rust use rust-gdb or rust-lldb wrapper
Avatar
Lldb is acceptable, I’ll allow it
Avatar
i use gdb with that plugin tho
08:07
gef
Avatar
chillerdragon BOT 2024-01-05 08:07:49Z
Thanks but why horse
Replying to @MilkeeyCat chillerdragon: dat was a horse
Avatar
Gef I only use when I’m doing reverese engineering
Avatar
chillerdragon: 🐴
Avatar
chillerdragon BOT 2024-01-05 08:08:44Z
wats happenin
08:17
A slang for Ketamine, a street drug.
Avatar
Avatar
chillerdragon
wats happenin
🐴 💊
08:22
🐎 (edited)
Avatar
რილია 2024-01-05 08:37:27Z
when a player suicide, his character will be deleted before the function Die() get called ?
Avatar
Avatar
რილია
when a player suicide, his character will be deleted before the function Die() get called ?
no, the Die() function is ran before
08:40
DDraceNetwork, a free cooperative platformer game. Contribute to ddnet/ddnet development by creating an account on GitHub.
Avatar
Avatar
ReiTW
no, the Die() function is ran before
რილია 2024-01-05 08:43:10Z
hah
08:45
i implemented Extra Life : void CCharacter::Die(int Killer, int Weapon, bool SendKillMsg) { //my stuff if(m_ExtraLives && m_pPlayer) { // dbg_msg("m_ExtraLives", "called"); Rescue(); m_ExtraLives--; return; } it's working when the player get spiked, but not working when suicide (edited)
Avatar
what are you trying to achieve (edited)
Avatar
რილია 2024-01-05 08:48:34Z
players can buy Extra Life with theyr Scores
08:48
it's a block server
Avatar
რილია 2024-01-05 08:59:37Z
and i wanna make the person who reached the maximum scores, a god, give him 9 lives in exchange of all of his scores 😂 (edited)
09:00
btw, maximum scores are 6969
Avatar
ChillerDragon BOT 2024-01-05 09:01:19Z
cl_kill calls KillCharacter
09:01
which calls Die() and afterwards deletes the character
09:01
u can return in Die() all u want if the obj is deleted
09:02
this is where selfkill happens
09:02
09:03
the delete and the set to 0 and the Respawn() are all things you do not want.
09:03
I would put something in gamecontext.cpp where also the selfkill protection from ddnet is. And return there if the player has god mode
Avatar
რილია 2024-01-05 09:04:21Z
i just return whenever is ExtraLive is more than 0
09:05
thank you ❤️
Avatar
ChillerDragon BOT 2024-01-05 09:05:36Z
<3
09:06
disallowing selfkill might be annoying
09:06
imagine the trollings you can do in a block server to a tee that can not respawn
09:06
@რილია
Avatar
Avatar
ChillerDragon
imagine the trollings you can do in a block server to a tee that can not respawn
რილია 2024-01-05 09:08:45Z
a the worst senario if he became a god, he needs to suicide 9 times
Avatar
ChillerDragon BOT 2024-01-05 09:09:11Z
Ah i see
Avatar
რილია 2024-01-05 09:09:22Z
I worry about the others 😂
Avatar
ChillerDragon BOT 2024-01-05 09:09:27Z
axaxax true
09:09
But if i see a god i would never spike him then. Only put him in a freeze pit and wait until he suicides 9 times hehe
Avatar
Avatar
ChillerDragon
But if i see a god i would never spike him then. Only put him in a freeze pit and wait until he suicides 9 times hehe
რილია 2024-01-05 09:10:12Z
yeh me too
Avatar
ChillerDragon BOT 2024-01-05 09:10:30Z
depends on the map and playerbase i guess how the gameplay meta works
09:11
I wonder if microsoft reads the irc logs and in chatgpt 5 you can ask ddnet codebase specific questions o.O
Avatar
ChillerDragon BOT 2024-01-05 09:20:25Z
omg the last few todos of ddnet 0.7 are fakin hydras. While solving one two new ones pop up.
09:20
😂 4
Avatar
რილია 2024-01-05 09:20:29Z
if(pChr->m_ExtraLives && pPlayer) { pChr->m_ExtraLives--; pChr->Rescue(); return; } pPlayer->m_LastKill = Server()->Tick(); pPlayer->KillCharacter(WEAPON_SELF); pPlayer->Respawn(); now it's working like a charm
Avatar
ChillerDragon BOT 2024-01-05 09:20:31Z
unedited picture of me coding
09:21
nice
Avatar
რილია 2024-01-05 09:22:19Z
player having extra lives and disconnect 😂
Avatar
ChillerDragon BOT 2024-01-05 09:22:36Z
just disallow disconnect axaxaxax
Avatar
Avatar
ChillerDragon
Click to see attachment 🖼️
this func is used 4 times haha
10:10
perf isnt thaaaat bad if you dont call it a million times per tick (edited)
Avatar
რილია 2024-01-05 10:46:48Z
10:47
void CCharacter::ExtraLives() { Rescue(); UnFreeze(); GameServer()->ExtraLiveParticle(this); m_ExtraLives--; }
10:47
why the player not getting unfreezed ?
10:49
sometimes it gets unfreeze and sometimes not
Avatar
ChillerDragon BOT 2024-01-05 10:49:45Z
@Teero its one of the most expensive funcs that is used during gameplay
Avatar
ChillerDragon BOT 2024-01-05 10:49:58Z
but tbh idk how to make it smarter
10:50
using intersectline for my hax clients drops my rapsi even without graphics down to fps where it cant even walk straight
Avatar
i thought GetMapIndices was the most expensive
Avatar
ChillerDragon BOT 2024-01-05 10:51:00Z
isnt that free?
10:51
std::vector<int> CCollision::GetMapIndices(vec2 PrevPos, vec2 Pos, unsigned MaxIndices) const { std::vector<int> vIndices; float d = distance(PrevPos, Pos); int End(d + 1); if(!d) { int Nx = clamp((int)Pos.x / 32, 0, m_Width - 1); int Ny = clamp((int)Pos.y / 32, 0, m_Height - 1); int Index = Ny * m_Width + Nx; if(TileExists(Index)) { vIndices.push_back(Index); return vIndices; } else return vIndices; } else { int LastIndex = 0; for(int i = 0; i < End; i++) { float a = i / d; vec2 Tmp = mix(PrevPos, Pos, a); int Nx = clamp((int)Tmp.x / 32, 0, m_Width - 1); int Ny = clamp((int)Tmp.y / 32, 0, m_Height - 1); int Index = Ny * m_Width + Nx; if(TileExists(Index) && LastIndex != Index) { if(MaxIndices && vIndices.size() > MaxIndices) return vIndices; vIndices.push_back(Index); LastIndex = Index; } } return vIndices; } } this abomination
10:53
basically the same logic
Avatar
ChillerDragon BOT 2024-01-05 10:54:19Z
rip irc
10:54
yea thats basically a fakin bitcoin miner i see it now
10:56
@რილია maybe the unfreeze has to happen in the next tick otherwise the player is still in the freeze
10:57
i assume setting some m_PlsDoUnfreeze = true which then in character tick unfreezes it should work but there might be a nicer way
Avatar
რილია 2024-01-05 10:57:43Z
so i make it the first tick it could unfreeze then (edited)
Avatar
ChillerDragon BOT 2024-01-05 10:57:46Z
does /r unfreeze?
Avatar
Avatar
ChillerDragon
does /r unfreeze?
რილია 2024-01-05 10:58:08Z
i didn't see any unfreezing in it
Avatar
rescue should be unfreezing automatically
Avatar
Avatar
Teero
rescue should be unfreezing automatically
რილია 2024-01-05 11:04:54Z
sometime it is sometimes not
11:05
problem fixed
Avatar
რილია 2024-01-05 11:05:52Z
if(UnfreezeNeeded && UnFreeze()) { UnfreezeNeeded = false; } i just added this to character::Tick() 😂
Avatar
that will unfreeze the character every tick justatest
Avatar
რილია 2024-01-05 11:06:34Z
if needed
11:07
hum
11:07
i think youre right
Avatar
yea since it quits if UnfreezeNeeded is false instantly and doesnt call UnFreeze(). very ugly imo
Avatar
რილია 2024-01-05 11:07:34Z
brah
11:07
nah its cool
Avatar
Avatar
Teero
yea since it quits if UnfreezeNeeded is false instantly and doesnt call UnFreeze(). very ugly imo
რილია 2024-01-05 11:09:36Z
it's not ugly, it's cute owo (edited)
11:15
is there a function to retract all the hooks attached to a player ?
11:19
rewriting it will be fun tho
Avatar
https://github.com/teeworlds/teeworlds/pull/2688 https://github.com/ddnet/ddnet/pull/4741 Changes game/generated/protocol7.cpp from this: ```C++ case NETOBJTYPE_CHARACTER: { CNetObj_Character pObj = (CNetObj_Character *)pData; if(sizeof(pObj) != Size) return -1; if(!CheckInt("m_Health", pObj->m_Health, 0, 10)) return -1; if(!CheckInt("m_Armor", pObj->m_Armor, 0, 10)) return -1; if(!CheckInt("m_Weapon", pObj->m_Weapon, 0, NUM_WEAPONS-1)) return -1; if(!CheckInt("...
Avatar
Will the community filters add more server organization?
Avatar
ChillerDragon BOT 2024-01-05 11:33:43Z
@Bamcane that seems to be the plan why?
Avatar
Avatar
ChillerDragon
@Bamcane that seems to be the plan why?
Is it means "That seems to be the plan, why?"?
Avatar
1. Learning Unreal -> 2. Reaching the point of the need of a vesrion control system (decides on git) -> 3. Researches and finds that github is limited in the context of git-lfs -> 4. Looks up CodeBerg (reads faq/licences) -> 5. Looks up UE5 search term in CodeBerg's repos for the fun of it -> 6. Find a project -> 7. The project is a little broken (easily fixed) -> 8. The broken link is replaced with the correct one in the .uproject file -> 9. While fixing it needs to find the link and sees that an app isn't opened by default such as ddnet://address -> 10. Searches for way to add that default behaviour in their distro's forums -> 11. Ends up finding a thread which mentions rofi -> 12. Thinks rofi is pretty cool and continues to find very cool configurations -> 13. In the same thread there's a mention of ytfzf (posix script to search yt videos from terminal and watch them in mpv) -> 14. Starts to write this msg in #developer to show how much organized and collected they are.
Avatar
what's this?
Avatar
It's how I woke up 4 am and how my day went
Avatar
ChillerDragon BOT 2024-01-05 11:48:05Z
@Bamcane yes that is the plan
Avatar
ChillerDragon BOT 2024-01-05 11:48:09Z
@Bamcane why do you ask
Avatar
Avatar
Mr.Gh0s7
It's how I woke up 4 am and how my day went
I just wrote it for context. I mainly wanted to share about rofi but that's the backstory
Avatar
ChillerDragon BOT 2024-01-05 11:50:02Z
epic backstory
Avatar
This is rofi https://github.com/davatorium/rofi and this is the super duper configs https://github.com/adi1090x/rofi.
Avatar
Avatar
ChillerDragon
@Bamcane why do you ask
In fact, i found community filters just today
Avatar
ChillerDragon BOT 2024-01-05 11:51:41Z
yrfzf looks amazing
Avatar
So i want to know is it true
Avatar
ChillerDragon BOT 2024-01-05 11:52:20Z
there is huge open source drama about communties :D
Avatar
Avatar
ChillerDragon
yrfzf looks amazing
It does. But after writting the backstory I feel like ytfzf and rofi aren't as cool anymore :(. here's a cool picture of rofi used as launcher https://raw.githubusercontent.com/adi1090x/rofi/master/previews/launchers/type-6/6.png
Avatar
@Ryozuki FFR assuming i don't use any global variables. Do you know any lib that parses all variable names of a closure (only from syntax, so || { whatever ... }) that are bound to it? i mean u can probably create some weird edge cases like let a: fn() = somefunc; but let's not deal with those xd i basically need the captures of a closure by name i am 100% sure one of your quadtrillion tabs must have had the same weird problem i have rn 😏
Avatar
ChillerDragon BOT 2024-01-05 12:04:41Z
have you tried using C++?
Avatar
does it have proc macros?
Avatar
ChillerDragon BOT 2024-01-05 12:05:00Z
dont think so
Avatar
sad
12:06
rust is always the opposite of cpp
12:06
in cpp captures are explicit, in rust not xdd
12:07
i fear that i have to write a rust compiler now, to find out this are non local variables so i know their name
12:07
rip me
12:07
or rust parser*
Avatar
Avatar
Learath2
Very rarely I’ll also enable the tui using tui enable in gdb, it’s useful if you have only one screen
ctrl-x ctrl-a is faster
Avatar
ChillerDragon BOT 2024-01-05 12:16:27Z
hacker deen
12:18
how can i see where a method is called from?
12:18
in my ide
Avatar
what ide?
Avatar
Shift + Alt + F12
Avatar
ChillerDragon BOT 2024-01-05 12:18:52Z
vscode vim grep
Avatar
Avatar
deen
ctrl-x ctrl-a is faster
TIL
Avatar
ChillerDragon BOT 2024-01-05 12:19:17Z
ah nice jopsti
12:20
is this bug free?
Avatar
pretty, but if u have traits, or interfaces it can suck a bit
Avatar
ChillerDragon BOT 2024-01-05 12:21:35Z
i use c++
Avatar
better use the base definition
12:21
that's why i mentioned interfaces
12:21
😏
Avatar
Avatar
Jupstar ✪
@Ryozuki FFR assuming i don't use any global variables. Do you know any lib that parses all variable names of a closure (only from syntax, so || { whatever ... }) that are bound to it? i mean u can probably create some weird edge cases like let a: fn() = somefunc; but let's not deal with those xd i basically need the captures of a closure by name i am 100% sure one of your quadtrillion tabs must have had the same weird problem i have rn 😏
I'm interested what you need it for ^^
Avatar
virtual functions, if u prefer that
Avatar
ChillerDragon BOT 2024-01-05 12:22:22Z
int CSnapshotStorage::Get(int Tick, int64_t *pTagtime, const CSnapshot **ppData, const CSnapshot **ppAltData) const
12:22
for this heinrich
12:22
seems to be called in 2 places
12:22
usually i search the func name but searching Get is no fun and idk how many snap storages are there
Avatar
რილია 2024-01-05 12:22:58Z
how to tell a character to retract his hook ?
Avatar
ChillerDragon BOT 2024-01-05 12:23:09Z
hookstate retracted
Avatar
Avatar
heinrich5991
I'm interested what you need it for ^^
it's the last missing piece in my safe Rc<RefCell> impl instead of having a RefMut and work on it, you give a closure.. but a normal closure has to few restrictions.. so i want ALL captures to have this restriction instead
Avatar
ChillerDragon BOT 2024-01-05 12:23:13Z
gamecore
Avatar
რილია 2024-01-05 12:23:24Z
i tried m_HookState = HOOK_RETRACT
Avatar
ChillerDragon BOT 2024-01-05 12:23:34Z
u mean == ?
12:23
for a check
12:23
a
12:23
tell
Avatar
რილია 2024-01-05 12:23:43Z
no
Avatar
ChillerDragon BOT 2024-01-05 12:23:45Z
not check
12:23
ye i see
Avatar
რილია 2024-01-05 12:24:04Z
the hook just disapear but still attached
Avatar
xDD chiller IRC moment
Avatar
ChillerDragon BOT 2024-01-05 12:24:17Z
.awdkawd
Avatar
turn on replies
Avatar
ChillerDragon BOT 2024-01-05 12:24:20Z
m_TriggeredEvents |= COREEVENT_HOOK_HIT_NOHOOK;
12:24
idk man
12:24
i would also have to try and error i never cut a hook
12:25
but also wanted to code some powerup once that gets rid of all hooks attached to you
12:25
is nice for endless nobs
12:26
Avatar
რილია 2024-01-05 12:26:09Z
i tried reset() in character core, i found out character will spawn at x:0 y:0 , but hook still attached 😂
Avatar
ChillerDragon BOT 2024-01-05 12:26:10Z
i needed that powerup here
12:26
this is a real pvp screenshot not staged
Avatar
რილია 2024-01-05 12:27:20Z
did i said i made a server ?
Avatar
ChillerDragon BOT 2024-01-05 12:27:34Z
wot?
12:28
yea u buildin a server side blox mod we know
Avatar
რილია 2024-01-05 12:28:21Z
its on the internet tab <<< SkyBlock
Avatar
ChillerDragon BOT 2024-01-05 12:28:29Z
virus ip grabber
12:28
12:28
nice skyblock map
12:29
eww telegram ads
Avatar
Avatar
ChillerDragon
Click to see attachment 🖼️
რილია 2024-01-05 12:29:22Z
yeh looks like my map
Avatar
ChillerDragon BOT 2024-01-05 12:29:31Z
u recognize it? xd
Avatar
Avatar
ChillerDragon
eww telegram ads
რილია 2024-01-05 12:30:00Z
the telegram is the only app which is still working here in iran 😂 beside discord
Avatar
what about signal?
Avatar
რილია 2024-01-05 12:30:17Z
no
12:30
i didnt try it tho
12:30
and we use telegram with proxy, it's the only way
12:31
it has builtin proxies
12:35
epic
12:35
this ddnet patch causes no crashes client or server side
12:35
i have breaking my brain on this line of code wat to do with it and its fakin unused
Avatar
(?)
Avatar
რილია 2024-01-05 12:45:18Z
yoho, made it working void CCharacter::RetractAttachedHooks() { CPlayer *pPlayer; CCharacter *pChr; for(int i; (i < MAX_CLIENTS) && (pPlayer = GameServer()->m_apPlayers[i]) && (pChr = pPlayer->GetCharacter()); i++) { if(pChr->Core()->HookedPlayer() == m_pPlayer->GetCID()) { pChr->m_Core.SetHookedPlayer(-1); pChr->m_Core.m_HookState = HOOK_RETRACT_START; } } }
Avatar
ChillerDragon BOT 2024-01-05 12:55:03Z
pro
Avatar
Avatar
Jupstar ✪
@Ryozuki FFR assuming i don't use any global variables. Do you know any lib that parses all variable names of a closure (only from syntax, so || { whatever ... }) that are bound to it? i mean u can probably create some weird edge cases like let a: fn() = somefunc; but let's not deal with those xd i basically need the captures of a closure by name i am 100% sure one of your quadtrillion tabs must have had the same weird problem i have rn 😏
ok i guess i'll simply write my macro so, that it forces to write out the captures explicitly, problem solved 😏
12:56
compile time panic-free safe Rc<RefCell> take that borrow checker
Avatar
Avatar
Jupstar ✪
@Ryozuki FFR assuming i don't use any global variables. Do you know any lib that parses all variable names of a closure (only from syntax, so || { whatever ... }) that are bound to it? i mean u can probably create some weird edge cases like let a: fn() = somefunc; but let's not deal with those xd i basically need the captures of a closure by name i am 100% sure one of your quadtrillion tabs must have had the same weird problem i have rn 😏
u always have weird ideas
Avatar
Avatar
Ryozuki
u always have weird ideas
i am just biggest RAII & hierarchy + macro abuser 😬
Avatar
Avatar
Jupstar ✪
virtual functions, if u prefer that
dyn dispatch?
Avatar
that was just for chillerdragons thing xd
13:06
no related to the problem
Avatar
Avatar
Jupstar ✪
it's the last missing piece in my safe Rc<RefCell> impl instead of having a RefMut and work on it, you give a closure.. but a normal closure has to few restrictions.. so i want ALL captures to have this restriction instead
which restriction?
13:06
sounds interesting
Avatar
Avatar
heinrich5991
which restriction?
i have a derive macro that implements a "hierarchical value" to determine if your component is higher level than another one => you can safely use Rc without leaks but if you go even further and also restrict Rc<RefCell> to never allow RefMut outside of your class, then you can restrict all paramters of your function to only allow lower level components => no higher level component is used inside your function. and thus it's not possible to borrow mut twice (this component at least) the component itself also has wrapper that hides Rc<RefCell> so it cannot be acccessed. So basically the goal is to never call borrow_mut, only the macros do it. and the same macros apply the restrictions to the func parameters
13:10
hiarc best crate sub to it on crates.io 😏
Avatar
cool 😮
13:12
classic squatting crate on crates.io though 😄
Avatar
Securing the Web: Rustls on track to outperform OpenSSL Prossimo is funding the development of Rustls, a high-quality TLS implementation written in Rust, with the aim of replacing less safe alternatives such as OpenSSL. This article goes into recent developments in performance tracking for Rustls and provides a performance comparison between Rus...
Avatar
looks nice
13:28
the title says "on track to" because it doesn't
this 1
Avatar
I hope they drop c compiler requirement soon
Avatar
What do they even use it for?
Avatar
ring uses code from boringssl from openssl for crypto primitives
Avatar
Wirth's law is an adage on computer performance which states that software is getting slower more rapidly than hardware is becoming faster. The adage is named after Niklaus Wirth, a computer scientist who discussed it in his 1995 article "A Plea for Lean Software".
14:22
@heinrich5991 @Learath2 @Jupstar ✪ real or nah
Avatar
unfortunately real
Avatar
Very real
14:35
average software for sure
Avatar
ChillerDragon BOT 2024-01-05 14:35:35Z
web
Avatar
well with wasm it kida gets faster again xd
14:36
but adoption takes years
Avatar
ChillerDragon BOT 2024-01-05 14:36:01Z
electron
14:36
rust
14:36
runtime checks
14:36
😬
Avatar
ChillerDragon BOT 2024-01-05 14:36:47Z
gigachad C devs in 1999 had speed and segfaults
14:37
soydev rust devs in 2024 have checks and memory safety
14:37
there is a crate for that!
14:37
has become the new rust developer slogan
Avatar
i always wanted to see a java runtime that disables all safety checks, not for production simply to see perf benefits xd ofc this wont really work bcs u can catch the exceptions thrown, but would still be a funny project
14:38
in rust, disable all "hidden" panics
Avatar
ChillerDragon BOT 2024-01-05 14:38:27Z
which he uses for checking if numbers are even. That crate then depends on two other crates
Avatar
so those u cant unwrap
14:38
would also be cool
14:39
well the funny thing about rust vs c is
14:39
that rust theoretically has perf optimizations that c can't directly have so it's harder to write faster c code than rust
14:39
but in reality it's not the case anyway
Avatar
Avatar
Jupstar ✪
that rust theoretically has perf optimizations that c can't directly have so it's harder to write faster c code than rust
if llvm didnt have bugs
14:44
1. Constant Propagation for uniformly patterned aggregated types on InstCombine Originally, no implemented constant folding can handle constant global aggregate-type values with variable index access. This was the first issue I tackled on LLVM. Throughout the project, I decided to split the problem step by step and make the patch as small as possible.
14:44
2. Removal of memcpy introduced on the attributed with readonly, noalias and nocapture on MemCpyOpt LLVM function arguments can have attributes, i.e. noalias shows there is no other pointer variable that points to the same as the argument, and readonly shows that the argument is not modified in the function. Functions attributed noalias and readonly at the same position show invariance during the execution of the functions. If it’s also attributed with nocapture, we can omit the memcpy of argument to pass for such functions. But to completely remove that memcpy, we need to attach alignment attributes to the arguments.
14:44
3. Attaching wrapping flags for the switch to look up table conversion on SimplifyCFG This issue reports dropped nsw (no signed wrap) flags for arithmetic instructions on SimplifyCFG and InstCombine. (This is motivated by Rust Issue reported in the issue). This can be addressed by SimplifyCFG and InstCombine/InstSimplify. For the former SwitchToLookupTable on SimplifyCFG is the place to handle this.
Avatar
Avatar
ChillerDragon
but also wanted to code some powerup once that gets rid of all hooks attached to you
its ez
Avatar
4. Stack Move Optimization, which merges the allocas neither captured nor simultaneously used Rust’s move semantics introduce memcpy when values are 1) rebind to the variables, 2) passed by value to the functions. But for most cases, also due to the property of the Rust references, both pointers aren’t used simultaneously. By using alias/dataflow analysis, we could find such patterns on LLVM-IR. Originally, liveness-analysis approach was proposed, but it stalled for a long time. So I pushed forward by splitting it’s patch.
Avatar
Avatar
Ryozuki
if llvm didnt have bugs
not only that expensive optimizations take longer the more code you have so huge code bases would be really slow to compile u already see this with LTO
14:44
which is probably not the best you could get
14:45
@Ryozuki btw do u also do optimizations at job?
Avatar
for llvm?
14:46
or for our code
Avatar
i guess for the code translation
Avatar
most projects we have consistently have benchmarks and we track if there are regressions
Avatar
i c
Avatar
also flamegraphs etc
Avatar
@Jupstar ✪ i got a new project at work
15:07
its a language our company will use
15:08
more xp with compilers kek
Avatar
yeah
15:13
cool
15:13
i'll soon work at chillerdragon.corp
Avatar
at grindr?
15:14
jkjk xd
Avatar
"Grindr is the world's largest social networking app for gay, bi, trans, and queer people." chiller u gay?
Avatar
Avatar
gerdoe
at grindr?
never heard about it before tbh xD
Avatar
ChillerDragon BOT 2024-01-05 15:15:40Z
i am not gay
15:15
who says im gay?
Avatar
your pfp
Avatar
ChillerDragon BOT 2024-01-05 15:15:53Z
ah fair xd
Avatar
well supporter or LGBTQ dont need to be part of it i guess xd
15:16
but at least it increases the chance
Avatar
ChillerDragon BOT 2024-01-05 15:16:34Z
jopsti u fr dont know grinder?
Avatar
no soz
15:17
i am not the social networkist guy u'll find
15:17
discord is my socialist network
15:17
socialister network
15:17
how to protect my server against bots
Avatar
ChillerDragon BOT 2024-01-05 15:17:53Z
wat bots
Avatar
don't make your server ip public
15:18
nice option
Avatar
only protection against bots is doing a nacked LAN party with metal detectors on your own PCs
Avatar
there must be a better option
Avatar
u should answer the question of the guy that is tagged with "bot"
15:19
what kind of bots
15:20
kinda ironic
Avatar
Think of it as real people taking up space in the game, but they're all afk
Avatar
Avatar
Waxuel
Think of it as real people taking up space in the game, but they're all afk
if they are bot connections a first would be collect their IPs
15:25
additionally, try to block known VPS and/or VPN IPs
Avatar
friday finally
Avatar
Hello, I'm going to cover a feature I only just finished. I was thinking about this idea for years already. I always thought the feature is too hardcore to be included, but I learned that it is usually a mistake to underestimate the players, so I gave it a go, and decided to share it right away.
16:41
factorio is my top 3 game
16:42
  • ddnet
  • dota
  • factorio
  • terraria
16:42
they all different genre so they are all top 1 in each
16:42
poggers2
Avatar
have you played stardew valley?
Avatar
i dont like that game
Avatar

Checklist

  • [X] 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-addres...
16:55
@heinrich5991 does modulo has same precedence as mul?
16:56
on most languages i mean
Avatar
Seems like it's the default in "C style" languages for mult/div/mod to have the same precedence
Avatar
Avatar
Ryozuki
@heinrich5991 does modulo has same precedence as mul?
what @Robyt3 says
17:00
it kinda makes sense, too, it's a similar operaton
17:00
(in python: i == i // 3 + i % 3)
Avatar
This allows custom clients to understand when a list is complete, instead of relying on heuristics such as timeouts.

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...
Avatar
Avatar
Ryozuki
@heinrich5991 does modulo has same precedence as mul?
I like requiring parentheses instead of setting a precedence for & and | btw 😉
17:13
i.e. (a & b) == c is fine, a & (b == c) is fine, but a & b == c is a syntax error
17:16
in C, 0 & 1 == 0 evaluates to 0, but in python, it evaluates to True
17:16
much fun
Avatar
chillerdragon BOT 2024-01-05 17:20:51Z
Activate inactive kick option
Replying to @Waxuel Think of it as real people taking up space in the game, but they're all …
Avatar
a55d498 Use IStorage::FormatTmpPath function for editor map names - Robyt3 0f39939 Merge pull request #7763 from Robyt3/Editor-FormatTmpPath - heinrich5991
Avatar
@Learath2 let's get https://github.com/ddnet/ddnet/pull/7683 over the line?
This rebases and partially rewrites #5842. Tested very roughly I still am not the biggest fan but this is the best I can do without going far too deep into a jobs rewrite: This iteration uses the ...
17:47
I'm okay with the busy waiting
18:03
1.63
18:04
its old but not as old!
Avatar
9e9da7d Set MSRV to Rust 1.63.0 - heinrich5991 af6fe41 Merge pull request #7566 from heinrich5991/pr_ddnet_rust_1_48 - def-
Avatar
Do we have anyone from dusseldorf here?
Avatar
Avatar
heinrich5991
@Learath2 let's get https://github.com/ddnet/ddnet/pull/7683 over the line?
I can fix the stuff Robyt mentioned tomorrow. Do you have anything you want fixed yourself?
18:51
c12835b Group NETMSG_RCON_CMD_ADD - heinrich5991 f81828e Group CNetMsg_Sv_VoteOptionListAdd - heinrich5991 ac041d7 Group CNetMsg_Sv_CommandInfo - heinrich5991 c5d6389 Merge pull request #7764 from heinrich5991/pr_ddnet_msg_groups - def-
Avatar
Avatar
Learath2
Do we have anyone from dusseldorf here?
i know one xd
Avatar
im tired of this shitass mf bloatware, what should i use instead of VS or CLion, vim or nevim or emacs or maybe vscode(not big fan)? preferably it should work on windows and linux
Avatar
vscodium
19:06
in 20 years you can finally use lapce
19:06
when it's stable and feature rich
Avatar
Avatar
Anime.pdf
im tired of this shitass mf bloatware, what should i use instead of VS or CLion, vim or nevim or emacs or maybe vscode(not big fan)? preferably it should work on windows and linux
neovim greenthing
Avatar
Avatar
Jupstar ✪
vscodium
so this is just vscode without telemetry?
Avatar
it's open-source vscode
19:08
and without telemetry maybe(?)
Avatar
Avatar
Jupstar ✪
in 20 years you can finally use lapce
♥ SexyManSexy ♥ 2024-01-05 19:09:01Z
😂
Avatar
Avatar
heinrich5991
it's open-source vscode
vscode is open-source
Avatar
♥ SexyManSexy ♥ 2024-01-05 19:09:36Z
i use vscodium and sometimes helix
Avatar
helix deez nuts justatest
Avatar
Avatar
Anime.pdf
vscode is open-source
nope. but microsoft tries telling everyone that, but it's not
19:10
vscodium is the open-source part of vscode
Avatar
Avatar
MilkeeyCat
helix deez nuts justatest
♥ SexyManSexy ♥ 2024-01-05 19:10:53Z
where's the problem ?
Avatar
Avatar
Anime.pdf
im tired of this shitass mf bloatware, what should i use instead of VS or CLion, vim or nevim or emacs or maybe vscode(not big fan)? preferably it should work on windows and linux
vscode or neovim with shitton of plugins
Avatar
Avatar
heinrich5991
vscodium is the open-source part of vscode
yep and funny part that you can use microsoft extension marketplace instead of vscodium default one
Avatar
Avatar
heinrich5991
and without telemetry maybe(?)
yup
Avatar
Avatar
Learath2
Do we have anyone from dusseldorf here?
is that some hogwarts place? xdd
Avatar
Avatar
Ryozuki
is that some hogwarts place? xdd
Düsseldorf
Avatar
Avatar
Ryozuki
is that some hogwarts place? xdd
it's a big city in germany
Avatar
it reminds me of harry potter
19:24
im sry
Avatar
Avatar
Ryozuki
it reminds me of harry potter
angst potter
Avatar
I probably wouldn't know a city of this size in other countries 😅
19:25
funny thing this reminded me japanese love german stuff
19:25
they use it in animes
19:25
names
Avatar
ye, that's funny ^^
19:26
one of the most famous ops is german
19:26
XD
Avatar
"german"
Avatar
ok the intro :d
19:26
@heinrich5991 lol
19:27
i googled japanese german
19:27
There is a community of Japanese people in Germany (or Nihonjin in Germany) consisting mainly of expatriates from Japan as well as German citizens of Japanese descent.
19:27
dusseldorf is first
Avatar
yep
Avatar
my friends with japanese roots have family in düsseldorf
19:27
Sind sie das essen? Nein, wir sind der Jäger!
19:28
Angriff auf die Titanen Der Junge von einst wird bald zum Schwert greifen Wer nur seine Machtlosigkeit beklagt kann, nichts verändern Der Junge von einst wird bald das schwarze Schwert ergreifen Hass und Zorn sind eine zweischneidige Klinge Bald, eines Tages, wird er dem Schicksal die Zähne zeigen
Avatar
I'll be in dusseldorf for a day or two if any of you live there
Avatar
Do german ppl rly can hear "Sind sie das essen? Nein, wir sind der Jäger"? Sounds more like shhcjdhajzichshxhsg justatest
Avatar
Avatar
heinrich5991
Sind sie das essen? Nein, wir sind der Jäger!
Is this attack on titan op1?
Avatar
Avatar
MilkeeyCat
Do german ppl rly can hear "Sind sie das essen? Nein, wir sind der Jäger"? Sounds more like shhcjdhajzichshxhsg justatest
Yeah it is op1. I can only hear "Having the sex with the bees and the eagles" there 🙃
Avatar
xDDDDD
Avatar
Btw lots of AOT ost is german completely. Like Vogel im Käfig and T:T
Avatar
anybody used https://mixxx.org/
Download the most advanced FREE DJ software available, featuring iTunes integration, MIDI controller support, internet broadcasting, and integrated music library.
19:44
ill become a dj
19:44
its open source
19:44
linux
Avatar
does it use rust?
19:45
19:45
looks cool
19:45
it has a gentoo package
Avatar
Avatar
Ryozuki
c++
no rust, red flag santatrollet
Avatar
Avatar
Learath2
Btw lots of AOT ost is german completely. Like Vogel im Käfig and T:T
by "german completely" you mean "uses german words"
19:45
not necessarily in an order that produces a meaning
Avatar
Avatar
heinrich5991
by "german completely" you mean "uses german words"
Are you sure? The lyrics look like full sentences to me
19:46
Not that I speak german
Avatar
or pronounced in a way that native speakers can understand them
Avatar
Avatar
Learath2
Is this attack on titan op1?
it's lyrics that come up later in the full song but they're not in the tv size OP
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
looks better than virtualdj ngl
Avatar
Avatar
Ryozuki
  • ddnet
  • dota
  • factorio
  • terraria
რილია 2024-01-05 19:46:55Z
you forget mindustry and principia
Avatar
factorio > mindustry
Avatar
რილია 2024-01-05 19:47:30Z
mindustry != factorio
Avatar
Avatar
heinrich5991
or pronounced in a way that native speakers can understand them
Probably not understandable to native speakers the way they pronounced, but the written lyrics themselves look more than just random words thrown in
Avatar
the written stuff does look somewhat intelligible, yea…
19:48
hmm
19:49
maybe I was wrong about that
19:55
are they food (maybe prey?)? no, we're the hunters/predators. attack on the titans the boy of yore will soon reach for the sword hate and wrath are a double-edged sword soon, one day, he'll show fate his teeth
not sure whether "to show someone one's teeth" is an idiom in english, too, but maybe? https://en.wiktionary.org/wiki/show_one%27s_teeth
Avatar
Avatar
MilkeeyCat
Do german ppl rly can hear "Sind sie das essen? Nein, wir sind der Jäger"? Sounds more like shhcjdhajzichshxhsg justatest
with subtitles, I can hear it
Avatar
bro i hate that rustfmt is breaking so often silently, no errors, nothing
Avatar
you mean in macros?
Avatar
i dunno it often has trouble with long lines etc.
20:06
but yeah currently it is broken in a proc macro (so not inside a macro)
20:06
normal rust syntax
Avatar
Avatar
Jupstar ✪
but yeah currently it is broken in a proc macro (so not inside a macro)
it might not touch anything in macros
20:07
which is pretty annoying 😦
Avatar
well it worked 2 days ago
20:07
but i dont always notice when it breaks xd
Avatar
ah 😦
Avatar
and "left behind trailing whitespace" is also a common bug i have
20:08
and that one is at least written to cmd line
20:08
ok no
20:09
that's just the thing it would fix
20:09
i got that wrong, but it's not fixing it xD
20:13
i just find it weird that it simply does nothing.. --verbose also shows nothing
20:14
it could at least say "no i can't do that and skip" or smth
20:14
rustfmt --edition=2021 --verbose lib.rs Formatting src/lib.rs Spent 0.001 secs in the parsing phase, and 0.013 secs in the formatting phase that's all i get xd
Avatar
hi_closure!([a: i32, b: &i32], |arg: i32| -> i32 { arg + a + *b + 1 }) my custom explicit closure syntax xdd
20:26
well if you missing an item in the capture list the error is a bit useless: can't capture dynamic environment in a fn item use the `|| { ... }` closure form instead but i guess i'll just add to docs and call it a day xdd (edited)
Avatar
Avatar
Jupstar ✪
hi_closure!([a: i32, b: &i32], |arg: i32| -> i32 { arg + a + *b + 1 }) my custom explicit closure syntax xdd
Why do you need it?
20:27
Are you injecting stuff?
Avatar
Avatar
Learath2
Why do you need it?
i want all captures to have a trait implemented
20:27
i need to make sure they do
20:28
else the closure is not panic-safe for Rc<RefCell>
Avatar
Can't have that with Fn?
20:28
Ah, they are probably also not fixed form closures
Avatar
gimme a second
20:29
i give u an example
20:31
struct MyStruct { a: i32, } impl MyStruct { fn test<F>(&self, a_normal_closure: F) where F: Fn() { a_normal_closure(); } } fn main() { let a = Rc::new(RefCell::new(MyStruct {a: 1})); let b = a.clone(); let c = a.borrow_mut(); c.test(|| b.borrow_mut().a += 1); }
20:31
bcs i passed b into the closure and have a borrowed mut
20:31
=> panic
20:32
but if MyStruct implements Hiarc trait then it can't pass itself into that function call, bcs the hirarchical value must be smaller that's not 100% how i did that, bcs actually there is a wrapper around it
20:33
but u could imagine it similar to this
Avatar
ChillerDragon I found yet another useful program https://github.com/mwh/dragon but only if you use terminal file managers
21:27
So now I can drag and drop files from lf (https://github.com/gokcehan/lf) without needing to open thunar :)
Avatar
chillerdragon BOT 2024-01-05 22:00:50Z
Im a Gnomie I use nautilus
Replying to @Mr.Gh0s7 ChillerDragon I found yet another useful program https://github.com/mwh/…
22:04
You there now?
Replying to @Learath2 Do we have anyone from dusseldorf here?
Avatar
did u know u can use port 0 to use free port 🤯
Avatar
chillerdragon BOT 2024-01-05 22:06:37Z
Yes
Avatar
chillerdragon BOT 2024-01-05 22:09:17Z
ggffgrgrg
Avatar
Avatar
Mr.Gh0s7
ChillerDragon I found yet another useful program https://github.com/mwh/dragon but only if you use terminal file managers
cool terminal file manager
22:15
💥 Blazing fast terminal file manager written in Rust, based on async I/O. - GitHub - sxyazi/yazi: 💥 Blazing fast terminal file manager written in Rust, based on async I/O.
22:15
im sure ryo will like it (edited)
22:21
i need a epyc cpu
Avatar
same
Exported 488 message(s)