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-02-15 00:00:00Z and 2022-02-16 00:00:00Z
Avatar
imagine not having loop {} which is like a while(true) BASED
Avatar
meh most fixes are using booleans for places where bools are required
Avatar
ca78c78 Use C++17 (requires Debian 9 to build) - def- 4c8e33e Fix MSVC build - def- 1afd1a3 Fix Linux build with C++20 - def- e31f255 Use ninja instead of makefiles - def- 0d06193 gnu++17 - def- 62756db Enable modernize-make-unique clang-tidy check - def- 984aed2 Add more clang-tidy modernize-* checks - def- 68e4eb2 Add modernize-use-bool-literals - def- 2da5d7d Add modernize-use-emplace - def- b58470f Add modernize-use-equals-default - def- de17e99 Add modernize-unary-static-assert - def- 7da9f1b Add modernize-use-equals-delete - def- dbfc62d Add modernize-deprecated-headers - def- fef7af8 Add some more modernize-* checks - def- 18d9997 Fix clang-format - def- e615d4b Fix tools - def- 218f4a4 Merge #4710 - bors[bot]
Avatar
chillerdragon BOT 2022-02-15 08:42:02Z
o.O (@deen)
a secret large map, not released yet
08:43
lmao deen is such an professional :D (@Ryozuki)
unknown.png
Avatar
Cellegen | HU 2022-02-15 09:24:37Z
justatest
Avatar
wtf xd
Avatar
can we somehow maybe get estimated number instead of what we currently have
09:38
so that developer doesnt have to die
Avatar
the color indicates the estimated number
Avatar
e30b178 Fix release block size - def-
Avatar
Avatar
Souly
can we somehow maybe get estimated number instead of what we currently have
f1: leak_ip_address_to_all_servers
Avatar
estimated number
11:12
that command actually leaks ip
Avatar
real number > estimated
Avatar
Avatar
Souly
that command actually leaks ip
of course, that does serverinfo requests the old way by pinging each one manually
Avatar
ye and that's not safe
Avatar
Avatar
Souly
ye and that's not safe
u wont die of it + just restart router or do it with a vpn
11:13
your client caches the pings
11:13
and saved them upon restart
11:13
so do it once and u r fine until new servers come
Avatar
i will die
Avatar
stop troll, its hardcore unfunny ^^
11:14
and will not get funnier over time xd
Avatar
#showroom
Avatar
[quakenet] ChillerDragon BOT 2022-02-15 11:34:39Z
watfaka is this live freeze :D i somewhat saw it on github and now after a merge with upstream i get random freezes haha
11:34
is it used in some map already?
Avatar
not on official maps
Avatar
[quakenet] ChillerDragon BOT 2022-02-15 11:35:29Z
hmk
11:35
do you have a tldr how it works?
Avatar
you can't do movement key inputs with it
Avatar
[quakenet] ChillerDragon BOT 2022-02-15 11:36:06Z
when?
11:36
on tile touch?
Avatar
when you have the effect, one tile turns it on, one off
Avatar
[quakenet] ChillerDragon BOT 2022-02-15 11:36:23Z
are you saying i drunk mapped that index somewhere?
Avatar
[quakenet] ChillerDragon BOT 2022-02-15 11:36:32Z
lol
Avatar
I suppose ^^
Avatar
[quakenet] ChillerDragon BOT 2022-02-15 11:36:58Z
INDEEED
11:36
144
11:37
HOW DAFAK DID THAT HAPPEN
kek 1
11:37
Ok thanks bois
11:38
@bencie lmao i always thought ur name is benice
11:38
as in ben ice or be nice
Avatar
you just noticed?
11:38
:D
Avatar
[quakenet] ChillerDragon BOT 2022-02-15 11:38:33Z
but bencie is like so odd
11:38
i noticed when i loaded the save game
Avatar
Although I've heard that before ^^ it's my irl name with an i added
Avatar
[quakenet] ChillerDragon BOT 2022-02-15 11:38:58Z
took me 10 mins
Avatar
hahahahah
Avatar
[quakenet] ChillerDragon BOT 2022-02-15 11:39:50Z
had to go to ddnet.tw and typed benice 3 times and somehow the name had no points
11:40
was about to contact ddnet staff that your name was wiped from the database
11:40
that's funny
Avatar
[quakenet] ChillerDragon BOT 2022-02-15 11:40:41Z
If I would try to fake you in game it won't be hard to identify me
Avatar
Happens when using Discord to stream with direct application capture. Doesn't happen with other games or other capturing programs. Assets that aren't loaded seem to be random. Need to fully restart DDNet in order to get the assets. Starting the stream on an already started DDNet will unload assets and replace them with black squares (visible to both player and viewers). Tried to change DDNet settings (OpenGL, full screen, etc) and Discord settings without success. Opening this issue t...
Avatar
@Patiga @Learath2 what is the executable that is run on $optimize? Want to do it locally
Avatar
edit_map, let me check the options used
13:23
--remove-everything-unused --shrink-tiles-layers
Avatar
why not --shrink-layers?
Avatar
because that would touch the game layers. that will change the position of the kill barrier and if the map is shrunk from the left or up it will move the map's floating point precision
13:26
I first made it do --shrink-layers, but I think Ravie and maybe others were against that
Avatar
-> if you want to do it locally on a normal, map, --shrink-layers should be harmless
Avatar
@Jupstar ✪ @Learath2 here us caring about 2gb map when they require 12gb ram nowadays
13:32
PepeA
Avatar
Minimum 12g memory pepeW
13:33
We are so in the wrong timeline
Avatar
i wonder if the game is coded in java or something lmfao
Avatar
memory is simply the easiest hardware to scale
Avatar
bad memory usage apologists smh
Avatar
i understand that you are mad if memory is wasted
13:41
and i agree in this case
13:41
but gameengines probably simply try to not unload textures/vertices etc as much as possible
Avatar
its hard for me to comprenhend how they need so much ram
Avatar
is that an MMO or smth?
13:43
open world?
Avatar
its elden ring
13:43
yes open source
13:43
souls like
13:43
open world
13:43
*
13:43
lmao idk why i said open source
13:43
xd
Avatar
that was ur desire xd
13:43
imagine looking into the source code of a AAA game
13:43
would be interesting
13:43
or maybe disappointing
Avatar
its alot of scripting language
13:44
for all events basically
Avatar
i expect some native fully optimized assembly here and there
13:44
like crypto people
Avatar
only physics and other stuff that need high performance use lower level language mostly
Avatar
Avatar
Ryozuki
imagine looking into the source code of a AAA game
I mean if you are interested unreal engines source is available, it's a massive part of the source code
13:45
i wanna know about the frostbite engine source code
13:45
bf3 and bf4 look too good for their age
13:45
must be some good engineering (edited)
Avatar
the engines are often very good indeed
Avatar
I'm more interested in what rockstar has, their open world games have always been above the rest for me
13:46
and they perform rly well
13:47
gta 5 is a beast
13:47
the amount of detail
13:47
on a open world game
13:47
it has no match
Avatar
RDR2 aswell, great performance for a game of that scale
Avatar
i'd say a lot of approximation for stuff that should look good but not be too realistic
Avatar
@Learath2 we are oficially in c++17 land
13:48
I can remove that one ugly void_t hack
Avatar
i wonder if #4711 is fixed by using vulkan
Avatar
Happens when using Discord to stream with direct application capture. Doesn't happen with other games or other capturing programs. Assets that aren't loaded seem to be random. Need ...
Avatar
directly used the automatic std::array auto template deduction
13:50
DDraceNetwork, a cooperative racing mod of Teeworlds - ddnet/backend_vulkan.cpp at 08a40740b38e9233619e83534fcb1cf59106468b · ddnet/ddnet
Avatar
why is DOWNLOAD_GTEST on by default in windows
Avatar
yeah a bit annoying, but heinrich said he did it, because google said you should do it xD
Avatar
@Jupstar ✪ are u using the c++ vulkan api?
Avatar
Avatar
Ryozuki
i wonder if #4711 is fixed by using vulkan
i'd hope so 😛
Avatar
or the C one
Avatar
there is a c++ one btw
Avatar
i know
Avatar
why not the c++?
Avatar
i dunno i just prefer to write my own wrappers
Avatar
Ryozuki, what are your feelings on this?
Avatar
Heinrich would have a spicy opinion about that too 😄 He is not a big fan of rolling your own almost anything
Avatar
i would use the c++
13:55
im sure its safer
13:55
they actually use smart pointers iirc
Avatar
the problem is, you dont gain alot from it
13:56
device->dosmth or dosmth(device)
Avatar
Avatar
Jupstar ✪
yeah a bit annoying, but heinrich said he did it, because google said you should do it xD
worst reason to do so
13:57
old code xd
Avatar
did you at least understand it?
Avatar
or just copy paste xd
Avatar
some stuff
13:58
not everything
13:58
Avatar
i mean in the end vulkan still feels similar to OpenGL, its just that OpenGL hides synchronizations and allocations
Avatar
u rly have lot of control
13:58
xdd
Avatar
and then you have 10000000000000 lines of code xd
Avatar
tho if u ask me now i dont remember much
Avatar
vk::PipelineLayoutCreateInfo PipelineLayoutInfo = {}; for example is even more verbose than c version vkPipelineLayoutCreateInfo PipelineLayoutInfo{};
14:00
xd
Avatar
this is from when i thought using only C and not c++ was the cool kids thing: https://github.com/edg-l/SimpleGame
Avatar
(how i used in inside c++ code ofc)
Avatar
therefor you can code the compiler for you simplegame in 1 month
14:01
while for rust and c++ you'll need years 😄
Avatar
Because the good guy microsoft respects the old habit of using local codepages for source code in Asia. (In china and japan MSVC defaults to treating the source code as GBK and SHIFT_JIS encoded still.)

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 if it works standalone, system.c especially
  • [ ] Considered possible null pointers and o...
Avatar
TIL I can't compile teeworlds in china
Avatar
do you own a pure chinese computer now, or what? xd
Avatar
Actually vk::PipelineLayoutCreateInfo PipelineLayoutInfo{}; should be fine in C++ too, no?
Avatar
Avatar
Learath2
Actually vk::PipelineLayoutCreateInfo PipelineLayoutInfo{}; should be fine in C++ too, no?
ah yeah, i only meant the scope
Avatar
but yeah dunno, i dont want to rewrite it now
14:03
the documention is in c, so i use c
Avatar
namespaces are one of the few C++ things I actually enjoy
Avatar
its simply more accessable for me 😄
14:04
i like template programming with c++ most i think
14:04
you can do so much bs with it, and that's what i like
14:04
you never learn out what quirks are possible with it xD
Avatar
thats why i avoid c++
14:05
what if some quirk is UB
14:05
monkalaugh
Avatar
its just a meta language
Avatar
I created a simple C++14 variable template that calculates factorials (just for learning). Then I want print the first 12 factorials. template <int n> const int fact = n * fact<n - 1>;
Avatar
just bcs rust says something isnt UB by documenting it, doesnt mean that its intuitive
14:06
are condition variables in rust FIFO? do they garantuee to exectue immediatly?
14:07
cond.notify_all(); cond.wait(mutex); what happens here?
14:07
do we wait, or do we notify ourself?
14:07
xd
Avatar
I think that's well defined, you've missed that notification
Avatar
it's not well defined in a way that you think its intuitive
14:08
you can signal yourself indeed
14:08
(in c++)
14:08
that's why i am asking
Avatar
This method will ensure that any current waiters on the condition variable are awoken. Calls to notify_all() are not buffered in any way.
Avatar
yes it makes no garantue that it executes directly
Avatar
It has to execute directly if it's not buffered in any way
14:10
Rust is lacking a standard that defines this terminology though, so who really knows 😛
Avatar
@Jupstar ✪ did u try rust yet
Avatar
i sometimes read a bit of code, but i still dont like the syntax, i want a c like rust xd
14:12
i have nothing against the concept of rust, defs helps to not shoot yourself
14:12
i dont dislike the syntax
14:12
sometimes it can get a bit weird
Avatar
tho, when i'd use it, i'd use safe only code, else it's useless xd
Avatar
when u have lot of types
14:13
but that also happens in c++
14:13
i only used unsafe code to call C functions
Avatar
well i am ofc also fine with proven code
14:13
not everywhere safe code can be used ofc
Avatar
@Jupstar ✪ are you sure that it's not ordered properly in C++?
Avatar
i feel like rust will look bad until u try it and get to intermediate level atleast
Avatar
Avatar
Learath2
@Jupstar ✪ are you sure that it's not ordered properly in C++?
gimme a second
Avatar
or atleast past the initial stage where u think the compiler trashes u for no reason
Avatar
C++11 30.5p4:
The implementation shall behave as if all executions of notify_one, notify_all, and each part of the wait, wait_for, and wait_until executions are executed in a single unspecified total order consistent with the "happens before" order.
Avatar
is "happens before" order defined?
14:16
i never rly read a standard much
14:16
i guess they are like legal texts
14:16
u gotta define everything
14:17
@Jupstar ✪ we have 343 issues
14:17
the discussion stuff totally didnt work
14:17
we have to make a purge
Avatar
Avatar
Ryozuki
is "happens before" order defined?
Yep 1.10p12
Avatar
Basically if an evaluation is sequenced before another (due to a sequence point (like ;)) it happens before or if an evaluation inter-thread happens before another 😄
14:20
When you want to actually analyse whether there is a data race it gets very annoying very quick to figure out what "happens before" what
Avatar
just use rust 4head
14:21
dont mind me im just here chatting cuz this endless queue
14:21
feelsbadman
Avatar
Avatar
Ryozuki
dont mind me im just here chatting cuz this endless queue
everyone is perma stuck in queue, I wonder why amazon just wont run more servers with their bottomless wealth
Avatar
ye its weird
14:22
@Learath2 i think its cuz the game design
14:22
mayeb they didnt design it to scale that well
Avatar
hey i remember we removed volatiles too
14:23
i did it actually xd
Avatar
Justifying removing them is not actually as trivial as one might initially think
Avatar
The volatile types do not provide inter-thread synchronization, memory ordering, or atomicity. we should use _Atomic or std::atomic ❯ rg volatile game/server/gamecontext.cpp 3657: static volatile i...
Avatar
It's easy to quote some folk tale "Volatile is never what you want"
Avatar
Both the lock and the volatile can be avoided by just using an atomic here
14:26
this was mostly our case too
14:26
we just needed atomics instead of volatile
14:26
(quoting u btw)
14:28
@Learath2 i like how instead of agreeing with u he calls for mom
14:28
well im joking obviously but it looks like t hat
14:28
monkalaugh
14:30
14:30
well its my time bye
Avatar
Avatar
Ryozuki
Both the lock and the volatile can be avoided by just using an atomic here
Fwiw I did actually believe that volatile was necessary until I actually went through the steps of figuring out what happens
Avatar
Avatar
Learath2
everyone is perma stuck in queue, I wonder why amazon just wont run more servers with their bottomless wealth
I think queues can make something seem more popular and be used intentionally. (Not sure sure if this is the case here though)
Avatar
i doubt since its a f2p game and the only way to spend money is if ur past the queue inside the game
Avatar
@Learath2 ok sry
14:48
my example only works with the wait that doesnt take a extra condition https://en.cppreference.com/w/cpp/thread/condition_variable/wait
Avatar
@Jupstar ✪ does it though? Which part of that page should I read?
Avatar
the first sentence
Avatar
"The effects of notify_one()/notify_all() and each of the three atomic parts of wait()/wait_for()/wait_until() (unlock+wait, wakeup, and lock) take place in a single total order that can be viewed as modification order of an atomic variable: the order is specific to this individual condition variable. This makes it impossible for notify_one() to, for example, be delayed and unblock a thread that started waiting just after the call to notify_one() was made." This note derived from the part of the standard I quoted seems to suggest that only a spurious wakeup is possible in that case
14:53
But that has nothing to do with the notify_all imo, spurious wakeups just randomly happen 😄
Avatar
mhh I'm not so sure about that
Avatar
Also, no need to be sorry, it is very annoying to figure out what all this means
Avatar
i could swear i had a bug with condition variables once, and it was bcs the wait returned for no reason
14:54
and notify_one fixed it then xd
Avatar
Wait does return for no reason at all, called a spurious wakeup, you always have to check a condition when you wakeup
Avatar
Avatar
Ryozuki
i doubt since its a f2p game and the only way to spend money is if ur past the queue inside the game
but if people hear that others are waiting in the queue, they'll think "wow, that's a popular game, maybe I should check that out too".
Avatar
Avatar
Learath2
Wait does return for no reason at all, called a spurious wakeup, you always have to check a condition when you wakeup
ok yeah, then i accept this too, but this is still unintuitive(i guess that was our starting point of the discussion)
Avatar
I actually read some ancient discussion on spurious wakeups once. I think the arguments were that 1) it allows for much higher performance and 2) when you wakeup you have to check a condition anyway, since a broadcast waking up someone else before you might have changed the condition
14:58
Oh and 3) I think a POSIX guy argued that it forces people to have "correct" code if you threaten them with spurious wakeups 😄
Avatar
xD
Avatar
3d450e2 Use /utf-8 for MSVC - TsFreddie b4d699d Merge #4712 - bors[bot]
Avatar
@Learath2 would you say we should also guard the variables in our code, it's probably safer, i think i'll create a pr
Avatar
guard?
Avatar
check the conditions correctly
Avatar
If we are using a cond var anywhere, we definitely should be
15:18
Either with wait + if or the predicate form, either is okay with me
Avatar
@Learath2 what does CAutoreleasePool AutoreleasePool; fix btw?
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 if it works standalone, system.c especially
  • [ ] 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-addresssanitizer--u...
Avatar
I think SDL is internally creating some refcounted types and if we don't have an outer pool to catch and release those they leak
15:34
Some obj-c refcounted types that is
Avatar
weird stuff xD
15:35
i wonder if that's actually still needed
Avatar
idk what tool was used to find the initial leak, so idk how you'd check if removing it changes sth
Avatar
oh ok
Avatar
Each thread creates a thread-wide autorelease pool automatically, but it's not drained until the thread is dead, so the gfx thread having a local one makes sense
Avatar
i wonder why they even use such things, but anyway, thanks for explaination
Avatar
Well obj-c is implementing modern language with C aesthetics 😄
15:44
The staple of a modern language is the ability to just allocate stuff on the heap and then forget about it
15:49
It does allow some very interesting things, obj-c is wild
15:49
You can monkey-patch stuff, literally replacing running code with other compiled code at runtime
Avatar
I think we should consider the tutorial map and vulkan support as a major improvement and release that as 16.0
👍 3
15:59
and use that for the last Steam marketing round we have available (not sure if they have much of an effect anyway)
Avatar
Avatar
Learath2
The staple of a modern language is the ability to just allocate stuff on the heap and then forget about it
is this rly it? or its sarcasm xd
Avatar
automatic memory management is definitely something that unites modern high level languages
16:15
it cuts out a main cause of bugs and crashes at the cost of performance and memory usage
16:16
(the original term "high level language" was for C, FORTRAN, Pascal, etc, so maybe should say https://en.wikipedia.org/wiki/Very_high-level_programming_language)
Avatar
is obj-c using a gc?
Avatar
Multiple reports on Discord in #bugs. Can't reproduce, happens with 15.9
Avatar
Avatar
Ryozuki
is obj-c using a gc?
It uses both approaches, it has autorelease pools that will deallocate everything in themselves when they go out of scope, and they have gc for some cases
Avatar
Just a guess that there might stil be garbage in this array

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 if it works standalone, system.c especially
  • [ ] 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 memc...
Avatar
Just to get a build and test if this is actually the cause

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 if it works standalone, system.c especially
  • [ ] 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]...
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 if it works standalone, system.c especially
  • [ ] 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-addresssanitizer--u...
Avatar
Reddit is currently the most popular search engine. The only people who don’t know that are the team at Reddit, who can’t be bothered to build a decent search interface. So instead we resort to using Google, and appending the word “reddit” to the end of our queries.
18:25
18:26
i also always put "reddit" at the end of my queries
18:26
specially for reviews
18:26
real people usually give more honest opinions than stupid paid websites
18:26
18:27
So how can we regain authenticity? What if you want to know what a genuine real life human being thinks about the latest Lenovo laptop?
>
You append “reddit" to your query (or hacker news, or stack overflow, or some other community you trust).
>
Google is dead.
>
Long live Google + “site:reddit.com”.
18:28
I wrote a working Minecraft server in Bash! wait, why did I do that
Avatar
i more and more find stuff i want to know on reddit rather than stackoverflow xD
Avatar
1972a1b Initialize m_aErrorString earlier (fixes #4707) - def- dc52f81 Merge #4715 - bors[bot]
Avatar
Avatar
Ryozuki
i also always put "reddit" at the end of my queries
same, depending on what I need site:reddit.com, or site:ycombinator.com, etc. but it's not necessarily google's fault, but of the people doing "seo"
Avatar
I've actually noticed that I don't really enjoy this new smart search stuff that's been getting more and more popular for the last 5 years
Avatar
you mean the sidebar?
Avatar
d153ed9 Version 15.9 - def- 5e8a337 Update spanish.txt - n0Ketchp 7084b0d Update translations - def- 775faf0 Update German translation - def- 526a64e newJumpsNewJumps - heinrich5991 fcd559c Add "groundjump-only" tile - heinrich5991 6f26ec4 Client: Fix projectiles rendering for demo playback - Kaffeine 8bb3d18 Update Chinese translations (by cheeser0613) - def- 9952cde Delay double click handling one frame after item activation - Robyt3 83db924 Lower the sound volume even further after #4568 - heinrich5991 8d66175 Update Portuguese translations (by Rockus) - def- 78d8ef9 Always destroy bullets/lasers on kill when in practice team (fixes #4694) - def- 7798bdc Add live freeze graphics by Soapy Sandwich - def- 054bb0b Initialize m_aErrorString earlier (fixes #4707) - def- e54319d Fix #4714 - def- e64eb8f Version 15.9.1 - def-
20:20
Avatar
Added missing french translations

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 if it works standalone, system.c especially
  • [ ] 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...
21:22
97a79c1 Fix #4714 - def- 84d896a Merge #4717 - bors[bot]
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 if it works standalone, system.c especially
  • [ ] 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-addresssanitizer--u...
22:14
aca3029 Updated french translations - Chairn 22dd3f1 Merge #4718 - bors[bot]
Exported 327 message(s)