Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/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 2022-09-15 00:00:00Z and 2022-09-16 00:00:00Z
Avatar
The initial map change message (NETMSG_MAP_CHANGE) is sent twice by the server for some reason, leading to two HTTP map requests if the map is not present. It should only be sent once.
Avatar
39223df editor: added reload button for image and sound popups - “sctt” 73d883d Editor image reload: renamed reload into readd - “sctt” da0dca2 Merge #5823 - bors[bot]
Avatar
6907895 Add LASERTYPE enum - heinrich5991 03b90f4 Added new cl colors and tweaked the settings menu - VoxelDoesCode 5deeb29 Add DDNetLaser to have more info about a laser shot - fokkonaut ed2b0f4 Merge #5639 - bors[bot]
Avatar
thank you fokko thank you heinrich 🥹 (edited)
08:01
next nightly's going to be so cool... not only do we get to have the readd function but the multicolored lasers thing
Avatar

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-addres...
Avatar
9f1dd0d Disallow HTTP (without S) requests by default - heinrich5991 cb2614f Treat manual aborts the same way as errors for map downloads - heinrich5991 0bf941e Add MaxResponseSize to limit HTTP response sizes - heinrich5991 716e8cd Add HTTPS map download URL field for game servers - heinrich5991 55703c9 Merge #5829 - bors[bot]
Avatar
Added in two more animation states, for running at a fast enough speed and for when you're AFK. Both of these states are bi-directional, and actually mirror very well inside the code. The runni...
Avatar
I think it is without if i read it correctly
10:41
@Voxel
Avatar
Today we are excited to talk about Pingora, a new HTTP proxy we’ve built in-house using Rust that serves over 1 trillion requests a day
Avatar
Avatar
GitHub
Click to see attachment 🖼️
@heinrich5991 i think you shouldn't change authorship when squashing commits
Avatar
I didn't, I htink
12:03
commit 5deeb299fa01ac10aad5d08416b002dbbda948d3 Author: fokkonaut Add DDNetLaser to have more info about a laser shot commit 03b90f4f3dfefd8be96d0213ec311197d051aafc Author: VoxelDoesCode Added new cl colors and tweaked the settings menu commit 6907895ee5574ad501aa7b75b8474576349340f1 Author: heinrich5991 Add LASERTYPE enum (edited)
12:04
ah, do you mean the first commit? I guess I could have attributed it to fokkonaut. I had to split the last commit into two, so that the other two commits compile on their own
12:04
(it's a very trivial commit though)
12:11
@heinrich5991 did you review my commit about DDNetLaser tho? I think it should be fine, but I dont remember everything rn
Avatar
Avatar
heinrich5991
ah, do you mean the first commit? I guess I could have attributed it to fokkonaut. I had to split the last commit into two, so that the other two commits compile on their own
yup i think it "belongs" to fokko or voxel. Im a little bit fussy about authorship because i've seen really unethical practice in my previous job
Avatar
i want that authorshiü
12:30
p
Avatar
German leaking
12:31
Ö
Avatar
Avatar
fokkonaut
i want that authorshiü
make a PR with a revert and then add it back yourself if you feel that strongly about it
12:33
well seems like its correct
Avatar
i actually have no idea how git handles multiple authorships and how it knows who authored and who committed
Avatar
Trailers
Avatar
I also like them. this one doesn't have too much technical stuff, unfortunately
13:33
but they say they want to open-source it "eventually"
Avatar
We are happy to share with you that we have added Dev Container support In Visual Studio 2022 17.4 for C++ projects using CMake Presets. Containers are a great way to package up everything for running an application. Through a Dockerfile all prerequisites are captured so that there is a consistent runtime environment anywhere the container is de...
Avatar
When you are used to your fast pc that using anothers not so good pc feels incredibly slow
14:41
notlike02
14:42
Also eth merged or smth and no longer proof of work
14:42
Best time to buy a gpu is now
14:42
Probs
14:43
Rx 6700 xt at 480€
14:43
I bought my rx 6600 xt for 600
14:43
God damn (edited)
Avatar
chillerdragon BOT 2022-09-15 15:50:23Z
Wot? Did gpu prices dip? Invest in gpu now?!
Avatar
dd if=/dev/zero of=/dev/sda bs=1M go
Avatar
Avatar
chillerdragon
Wot? Did gpu prices dip? Invest in gpu now?!
Yes, I recently bought the 24GB GIGABYTE GeForce RTX 3090 Ti
Avatar
Avatar
Learath2
dd if=/dev/zero of=/dev/sda bs=1M go
My PC doesn't work anymore now
Avatar
Maybe he executed it on a vm on his pc idk xD
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
echo "c, c++ & java are all better than rust"
Avatar
Do you know if I could somehow pass a held mutex to another function? specifically a std::lock_guard
17:08
Mh, maybe just commenting // DONT CALL WITHOUT HOLDING m_Lock is good enough 😄
Avatar
put the lock_guard in a unique_ptr?
Avatar
and I can check it with TSan if we ever figure out how to get it to work with std::mutex
Avatar
lock_guard locks the mutex on constructor and unlocks on destructor
17:10
at least that sounds reasonable to me to use a unique_ptr for that
Avatar
Avatar
Learath2
Do you know if I could somehow pass a held mutex to another function? specifically a std::lock_guard
is your goal to check if the mutex is locked inside the function?
Avatar
Well the mutex must be held while you call the function, that's the constraint I want to enforce
17:12
Now that I think about it, passing a mutex doesn't work to begin with, no way to make sure it's the mutex I want locked
17:12
I think this is a job for TSan
Avatar
or just try_lock
17:12
its either locked or you now lock it
Avatar
but I don't think that tells me if I hold the lock. The main thread could be holding it aswell
Avatar
so u want to pass a locked mutex from one thread to another?
Avatar
No, that's very very undefined anyway 😄
Avatar
i mean if u do lock func() or func(mutex& m) m.try_lock() (edited)
Avatar
I'm staying within the same thread
Avatar
or adapt_lock probs
17:16
tbh just add an assert
17:16
and call it a day xd
17:16
while(try_lock) probs sucks xD
17:16
if(!has_lock) lock
17:17
i think unique_lock has a check if its locked
Avatar
If try_lock is called by a thread that already owns the mutex, the behavior is undefined.
Avatar
"operator bool tests whether the lock owns (i.e., has locked) its associated mutex (public member function)"
Avatar
So that's a no-go anyway
Avatar
Avatar
Learath2
If try_lock is called by a thread that already owns the mutex, the behavior is undefined.
yeah i was just confused by ur other thread statement
17:18
which is already UB
Avatar
A recursive_mutex actually handles it quite well, but I think I'll just add a comment for now and check it with TSan later
17:19
Just wanted to ask to see if there is a common pattern when calling functions making sure a lock is held
Avatar
Avatar
Learath2
A recursive_mutex actually handles it quite well, but I think I'll just add a comment for now and check it with TSan later
show me the code
17:21
maybe u are doing it too complicated
Avatar
You'll see it when I push, fwiw I already coded it in a way that it's never called without the mutex being held, just want to make it safer in case I want to modify it later
Avatar
Avatar
Learath2
You'll see it when I push, fwiw I already coded it in a way that it's never called without the mutex being held, just want to make it safer in case I want to modify it later
well one way is build a wrapper around the object u protect and take the object as reference in the function auto& obj = wrapper.lock(); func(obj) wrapper.unlock()
Avatar
Avatar
Learath2
Well the mutex must be held while you call the function, that's the constraint I want to enforce
that's literally what TSA solves (not TSan)
Avatar
did clang15 release already for arch?
17:31
i still get warnings
17:31
bcs of it xd
Avatar
Oh yeah, it's not a sanitizer is it. It's an "Analyzer" 😄
Avatar
debian experimental already has clang15
17:32
ez
17:33
faster than arch xd
Avatar
rust mutex holding the data in it is such a smart move
17:49
c++ does it wrong
17:49
BASED
17:49
why is there no std::mutex<T>
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 17:50:49Z
@k2d222 du bist ein käse
17:51
your CV says you are fluent in english and yet your website is full baguette xd
17:51
oh wait there is /en
17:51
its just not default
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 17:52:13Z
i totally didnt stalk you
Avatar
oui oui baguette
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 17:52:51Z
:D
Avatar
Avatar
[quakenet] ChillerDragon
i totally didnt stalk you
👀 👀
17:53
wth is this 🤣
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
sudo rm -rf / --no-preserve-root
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 17:55:42Z
aw shit u stalked me back
17:55
i actually did not use a tool for that
17:56
but daily commitment and commit timing :D
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 17:56:17Z
ikr
17:56
im pationate
Avatar
that is 63 days worth of commitment
17:56
worth it
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 17:56:56Z
yes!
17:57
i think at some point i was in france camping
17:57
and pooped some commits from my phone
17:58
tbh the 3 rows of no commits were the hardest part
17:58
i think i faked that a bit
17:58
BASED
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 17:58:41Z
and set a date outside of that range if i really had to commit something
17:59
yo @k2d222 go maintain ur mc clone i wanna get rid of microsoft crap
17:59
and sadly minetest is so cursed :( i dont like it
Avatar
ah yeah true, I didn't notice the 6*7 rows of nothingness as well
Avatar
Avatar
[quakenet] ChillerDragon
yo @k2d222 go maintain ur mc clone i wanna get rid of microsoft crap
haha working on it like right now
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 17:59:44Z
good!
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 17:59:56Z
i thought its closed
Avatar
(itf it works)
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:00:06Z
virus
18:00
is it web only?
18:00
BAGUETTE
Avatar
no, c++ -> wasm compiled
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:00:29Z
no chat?
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:00:44Z
no scoreboard?
18:00
but multiplayer!
18:00
thats good stuff
Avatar
it was for the introductory course to opengl, initially
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:01:07Z
i can move right but not left xd
18:01
probably fromage keyboard layout only xd
Avatar
french layout 🥖
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:01:42Z
does french not have WASD ?
18:01
i got W SD
Avatar
esc->paramètres->controles
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:01:51Z
but no a
18:01
PARAMETERES
18:02
gauche?
Avatar
gauche=left
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:02:21Z
i totally knew that
18:02
WHY IS IT ON Q!?
18:02
boi its too much french
Avatar
french have the azerty layout
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:02:47Z
u gotta go a bit more international
monkalaugh 1
18:03
but cool stuff!
18:03
its funny
18:03
because ive stumbled on that project a few days ago
18:03
and didnt notice you were invoved
Avatar
thx, the goal is to mess around with the techs for me and my mate, really not to make a full blown game 🙂
18:04
and thought its a abandoned finished school project
18:04
full of french
Avatar
linguists: abcdefg... pros: qwert....
Avatar
Avatar
[quakenet] ChillerDragon
i even watched a bit of the french presentation xd https://www.youtube.com/watch?v=muUEtjMYQMY
HAHA
18:04
a guy from my school
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:04:29Z
go make game
Avatar
I hate this guy
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:04:52Z
shade
18:05
18:05
this guy?
Avatar
how the f did you find the vid?
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:05:44Z
its in the readme
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:05:47Z
i clicked on it
18:05
when i was broswing github the other day
18:05
its soooo funny its yourproject
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:06:06Z
i just noticed today when i was stalking u
Avatar
chiller how is your fulltime github influencer job going
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:06:34Z
good good
18:06
its obv a meme
18:06
im not getting paid ever
18:07
and also not writing any good code
Avatar
i somehow got 2 sponsors on github
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:07:09Z
but i do spend a shitton of time there
18:07
i know
18:07
because i pay close attention to my github feed
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:07:21Z
and i flw u
18:07
do sponsors show there
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:07:33Z
no but who u follow
18:07
and u follow ur sponsors
18:07
i stalk every follows profile in my feed
18:07
xd
Avatar
i think my sponsor works at uber
18:07
and is a weeb
18:08
Miki, a bot for Discord with the view to make chatting more appealing through gamification and utility!
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:08:03Z
thats how i started stalking @k2d222 today cuz he did a follow
18:08
looks very weeb
18:08
UwU
18:08
yo @Ryozuki btw i also check out most of the repos you star :D
18:09
my github feed tab is open about 8hours a day minimum xd
18:09
i only star high quality stuff
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:09:40Z
ye
18:10
A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. - GitHub - FiloSottile/age: A simple, modern and secure encry...
18:10
a modern gpg replacement
18:11
oh wait
18:11
nevermind this
18:11
there is a rust implementation
18:11
its obviously superior then
18:11
A simple, secure and modern encryption tool (and Rust library) with small explicit keys, no config options, and UNIX-style composability. - GitHub - str4d/rage: A simple, secure and modern encrypti...
Avatar
yea just your regular cpp err msg poggers
Avatar
Avatar
k2d222
yea just your regular cpp err msg poggers
typical c++ smh
Avatar
3 pages of that btw
Avatar
index out of bounds
18:14
well its probs u are doing smth with wasm
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:14:43Z
yikers
Avatar
and unlike rust it doesnt have first class wasm support BASED
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:15:03Z
i like gpg tho -.-
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:16:25Z
i love that github has a "for you" page now
18:16
its literally tiktok
Avatar
since long
18:16
well i have the beta thing
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:16:39Z
ye ik
18:16
its long af in beta
18:17
did u ever check out https://github.com/explore ?
Explore is your guide to finding your next project, catching up with what’s trending, and connecting with the GitHub community.
18:17
but they are removing
18:17
trending
18:17
the most useful in there
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:17:34Z
ou didnt know
18:17
that sad
Avatar
it was discussed on hn
18:17
iirc its cuz they cant market that with ads
18:17
iirc
18:18
thorum
I check this page almost every day to discover new and interesting projects and keep track of what’s happening in the open source community. Unfortunately as of today, the following message is displayed on the Trending Repositories page:> Heads up! This Trending tab is being deprecated. Due to low usage of Trending Repositories and Trending Deve...
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:18:46Z
@fluffysnaff u here?
18:18
can i ping matrix?
Avatar
u pinged ye
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:19:02Z
xd
18:19
that makes sense
Avatar
chillerdragon BOT 2022-09-15 18:19:43Z
xxxxxxxxxxxxD
18:19
@fluffysnaff: lmao i found your teeworlds bot libary
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:20:12Z
GitHub is where people build software. More than 83 million people use GitHub to discover, fork, and contribute to over 200 million projects.
Avatar
Free and open-source library for DDNet bots
18:20
kek
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:20:40Z
10 stars
18:20
gotta have some users
18:21
more stars than my client -.-
18:21
another bot
18:21
in this topic
18:21
xd
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:21:33Z
sus
18:21
its a chat bot
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:21:42Z
this teestatus guy is rly sus
18:21
actually
18:22
gotta add the ddnet tag
18:22
to my other r epos
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:22:13Z
ye its good marketing
18:22
i obv do good tagging
18:22
because im fulltime
18:22
INFLUENCER
18:22
also do not forget to ask for a star in the readme
18:22
xd
18:23
the ddnet topic increased in size by 4
Avatar
[quakenet] ChillerDragon BOT 2022-09-15 18:23:26Z
pog
Avatar
big news
18:25
At Open Source Summit Europe, Linus Torvalds announced that he would push to get Rust into the forthcoming 6.1 Linux kernel that same day.
18:26
@Learath2 feelsamazingman
18:27
also linus is daily driving linux on a m2 mac (edited)
18:27
kinda interesting
18:29
can you make a function in c++ that fails at compile time if called more than 3 times?
Avatar
Does anyone know a trick to see what data is on a fd without reading it? Just for debugging
Avatar
Avatar
Ryozuki
can you make a function in c++ that fails at compile time if called more than 3 times?
what's the use case for this?
Avatar
Avatar
Chairn
what's the use case for this?
the author made it for fun but
18:31
maybe a resource meant to be used N times
18:32
level 1 WormRabbit · 7 hr. ago
>
It's not useless. It allows you to express that the function consumes some finite resource. For example, if you are trying to collect its return values into an array of length N, then it would be desirable that the function can be called exactly N times. But I'm not sure that Rust is flexible enough to build interfaces on those concepts.
Avatar
Avatar
Chairn
what's the use case for this?
Maybe limiting recursion depth at compile time? Not sure if it's a good idea as it'd cause a lot of code generation
18:32
Ok, this bizarre self connected socket I created has the oddest behaviour
Avatar
idk if u can check data without reading
Avatar
It just wakes up poll immediately
18:33
doesn't matter whether I put anything on it or not
18:33
It just always has events somehow
Avatar
maybe it has to do with it being self connected?
18:33
idk
18:35
The version of the call operator that takes a by-value receiver.
Avatar
libcurl documentation can really use some love :/
19:02
They don't say anything about having to do curl_multi_perform if curl_multi_wait returns 0 events. However all your transfers will get stuck if you don't
Avatar
Avatar
Learath2
Does anyone know a trick to see what data is on a fd without reading it? Just for debugging
Dunno if that's rly possible
19:05
What about mmap it
19:05
Idk
Avatar
Well it might be possible with an stap. I'll investigate it later, found a better way to debug it for this time
Avatar
SystemTap, let's you directly instrument syscalls
19:06
lets*
19:07
Not really it's intended use, but I've done some very weird inspection with it before. It has a lot of use because you basically can inject code into the kernel
19:09
There is also MSG_PEEK for recv, I just used that in the code instead of debugging
19:09
I guess I could have called MSG_PEEK in gdb, but didn't really feel like malloc'ing in gdb
Avatar
Almost done with this PR, just need to make something like std::latch and I'm done
Avatar
Hm, I really want to use afutex, but it's a bad idea to use a futex in application code
20:54
without a futex I need an extra mutex and a condition variable on each engine job :/
Avatar
what ar eyou trying to do?
20:55
sounds like an xy problem
Avatar
Avatar
Learath2
Does anyone know a trick to see what data is on a fd without reading it? Just for debugging
read the characters, then put them back?
Avatar
It doesn't sound anything like an xy problem to me, but sure. I have a State variable, I need to react on it changing
20:57
It's literally what futexes are for
20:57
The other option is a mutex and a condition variable around State
Avatar
Avatar
deen
read the characters, then put them back?
I didn't have access to the other half of the pipe at that part of the code
Avatar
Avatar
Learath2
It doesn't sound anything like an xy problem to me, but sure. I have a State variable, I need to react on it changing
use gdb and set a watcher on that variable troll
21:01
encapsulate the variable in a class with getters and setters so that you can have a callback for each and every access?
21:02
just like signals and slots in Qt
Avatar
Avatar
Chairn
encapsulate the variable in a class with getters and setters so that you can have a callback for each and every access?
Doesn't avoid the mutex or the condition variable. It's how I used them anyway
Avatar
i think i don't understand your problem then 😦
Avatar
Engine takes jobs, they are ran asynchronously, they have a field m_Status, some processes want to wait until m_Status == DONE
Avatar
but what's the problem with mutex ?
Avatar
I'm not a big enjoyer of overhead if you haven't noticed that about me
21:26
So much extra data, getters/setters, calls, for each request, for a feature available in any modern kernel
Avatar
nothing is free
21:26
+ that overhead is negligible for something that i believe happens rarely
21:27
i understand the need for beautiful or elegant code
Avatar
Well what annoys me there is that it is much cheaper than the price I have to pay. Futexes are a thing on linux and WaitOnAddress is a thing in NT. It's just that I don't have access to them
Avatar
but you should also be pragmatic when it gets too cumbersome
Avatar
Can't wait for C++20 to be common enough, std::atomic::wait is implemented with nice primitives on all the implementations I've seen
Avatar
final solution is x86-64 asm with hardware locks and test and set functions
Avatar
Well I have access to test and set through standard c++, no need to dig out assembly 😄
Avatar
good luck with that though 😄
Avatar

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-addres...
Avatar
I'll just make it much less generic so only a subset of waitable jobs have to pay the price
Avatar
Mh, couldn't finish it, such a shame
23:01
Need to thread a new void Shutdown() through kernel interfaces so the signal for a shutdown can go through without the destructors happening
Avatar
Images by @VoxelDoesCode : !unknown !unknown2

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...
monkalaugh 1
justatest 1
😂 1
Avatar
this is the best
23:50
most useful commit so far
Exported 356 message(s)