00:00 <+bridge> [ddnet] But yeah, making it safer is still a good idea 00:04 <+bridge> [ddnet] No, it does not track anything. It is (a very cheap) way to get compile-time information which is lost during `char aVar[N]` to `char *pVar` conversion. 00:04 <+bridge> [ddnet] So we'll still have to use the current functions (in about 10% of cases, as I see). 00:04 <+bridge> [ddnet] No, it does not track anything. It is a (very cheap) way to get compile-time information which is lost during `char aVar[N]` to `char *pVar` conversion. 00:04 <+bridge> [ddnet] So we'll still have to use the current functions (in about 10% of cases, as I see). 00:07 <+bridge> [ddnet] The compiler just know the type of passed variable. 00:07 <+bridge> [ddnet] 00:07 <+bridge> [ddnet] In 00:07 <+bridge> [ddnet] ```cpp 00:07 <+bridge> [ddnet] char aNameTry[MAX_NAME_LENGTH]; 00:07 <+bridge> [ddnet] str_copy(aNameTry, aTrimmedName, sizeof(aNameTry)); 00:07 <+bridge> [ddnet] ``` 00:07 <+bridge> [ddnet] the type of `aNameTry` is `char[16]`. Our new `str_copy()` can accept `char[N]` as the first argument and know the `N` at compile time. 00:07 <+bridge> [ddnet] So we can replace it with `str_copy(aNameTry, aTrimmedName);`, which 'll compile *only* if it is safe. 00:13 <+bridge> [ddnet] My suggestion is: add five lines, remove an extra argument in 300+ places (probably 400 of 477). Start with `str_copy()`, repeat where it makes sense. 00:13 <+bridge> [ddnet] 00:13 <+bridge> [ddnet] What is the benefit of replacing C arrays with `std::array`? I'm sure there are (e.g. we'll be able to use `std::array::size()` instead of `std::size`), but probably it won't be that lightweight change. 00:13 <+bridge> [ddnet] I'll prepare a PR then (not really soon). 00:14 <+bridge> [ddnet] > It has friendly value semantics, so that it can be passed to or returned from functions by value. Its interface makes it more convenient to find the size, and use with STL-style iterator-based algorithms. 00:15 <+bridge> [ddnet] > Unlike a C-style array, it doesn't decay to T* automatically. As an aggregate type, it can be initialized with aggregate-initialization given at most N initializers that are convertible to T: std::array a = {1,2,3};. 00:15 <+bridge> [ddnet] I've read it at https://en.cppreference.com/w/cpp/container/array too. But what's the practice side of that? 00:16 <+bridge> [ddnet] i believe modern c++ should have no c like arrays 00:17 <+bridge> [ddnet] E.g. we have 00:17 <+bridge> [ddnet] ```cpp 00:17 <+bridge> [ddnet] char aNameTry[MAX_NAME_LENGTH]; 00:17 <+bridge> [ddnet] str_copy(aNameTry, aTrimmedName, sizeof(aNameTry)); 00:17 <+bridge> [ddnet] ``` 00:17 <+bridge> [ddnet] 00:17 <+bridge> [ddnet] We'll replace it with `std::array aNameTry;`. Now what? `str_copy` won't be more convenient (or we'll need another template for that). 00:19 <+bridge> [ddnet] well its already wrong to not use std::string for strings in modern c++ 00:19 <+bridge> [ddnet] Take a note that we can't just do `aNameTry = aTrimmedName;`, because they can have diff size and we do `str_utf8_fix_truncation` on the result. 00:19 <+bridge> [ddnet] Why not? C++ arrays are ugly asf to begin with 00:19 <+bridge> [ddnet] Allocated on heap? Yeah, thanks. ๐Ÿ˜„ 00:19 <+bridge> [ddnet] c and c++ are ugly asf to begin with 00:19 <+bridge> [ddnet] C is sooo pretty โค๏ธ 00:20 <+bridge> [ddnet] ah true 00:20 <+bridge> [ddnet] std::strings suck 00:20 <+bridge> [ddnet] if it were rust i would use smallstr for stack allocated strings 00:21 <+bridge> [ddnet] but pulling in libs on c++ sucks 00:21 <+bridge> [ddnet] xd 00:23 <+bridge> [ddnet] Another `base/tl` component gone \\o/ 00:24 <+bridge> [ddnet] base/tl/threading.h also looks unused 00:25 <+bridge> [ddnet] `tl/array` is the most annoying to do :/ 00:25 <+bridge> [ddnet] I had it mostly done, but the sorted arrays we have get a bit annoying to handle 00:32 <+bridge> [ddnet] any cmake pro here? 00:33 <+bridge> [ddnet] how do i add a file into our cmake with extension `.c` without it being compiled? 00:33 <+bridge> [ddnet] `EXCLUDE_FROM_ALL` won't help? 00:34 <+bridge> [ddnet] how do i use it? 00:35 <+bridge> [ddnet] oof is that normal tohave 30fps with vulkan on 1920x1080 00:36 <+bridge> [ddnet] Another option: 00:36 <+bridge> [ddnet] ```cmake 00:36 <+bridge> [ddnet] add_custom_target(my-extra-c-files SOURCES 00:36 <+bridge> [ddnet] my-file.c 00:36 <+bridge> [ddnet] ) 00:36 <+bridge> [ddnet] ``` 00:36 <+bridge> [ddnet] nvm my screen was buggy 00:38 <+bridge> [ddnet] You can either add a regular target with `EXCLUDE_FROM_ALL` option: 00:38 <+bridge> [ddnet] ```cmake 00:38 <+bridge> [ddnet] add_executable(my-extra-c-files EXCLUDE_FROM_ALL my-file.c) 00:38 <+bridge> [ddnet] ``` 00:38 <+bridge> [ddnet] 00:38 <+bridge> [ddnet] or use the custom target (which is excluded from ALL by default, and can be included using `ALL` argument). 00:38 <+bridge> [ddnet] You can either add a regular target with `EXCLUDE_FROM_ALL` option: 00:38 <+bridge> [ddnet] ```cmake 00:38 <+bridge> [ddnet] add_executable(my-extra-c-files EXCLUDE_FROM_ALL my-file.c) 00:38 <+bridge> [ddnet] ``` 00:38 <+bridge> [ddnet] or use the custom target (which is excluded from ALL by default, and can be included using `ALL` argument). 00:39 <+bridge> [ddnet] You can either add a regular target with `EXCLUDE_FROM_ALL` option: 00:39 <+bridge> [ddnet] ```cmake 00:39 <+bridge> [ddnet] add_executable(my-extra-c-files EXCLUDE_FROM_ALL my-file.c) 00:39 <+bridge> [ddnet] ``` 00:39 <+bridge> [ddnet] or use the custom target (which is excluded from ALL by default, and can be included using `ALL` argument). 00:39 <+bridge> [ddnet] 00:39 <+bridge> [ddnet] I would suggest to try the custom target first, and then maybe add a fake executable or library if this won't work for some reason. 00:39 <+bridge> [ddnet] You can either add a regular target with `EXCLUDE_FROM_ALL` option: 00:39 <+bridge> [ddnet] ```cmake 00:39 <+bridge> [ddnet] add_executable(my-extra-c-files EXCLUDE_FROM_ALL my-file.c) 00:39 <+bridge> [ddnet] ``` 00:39 <+bridge> [ddnet] or use the custom target (which is excluded from ALL by default, and can be included using `ALL` argument). 00:39 <+bridge> [ddnet] 00:39 <+bridge> [ddnet] I would suggest to try the custom target first, and then maybe add a fake executable or library (excluded from `ALL`) if this won't work for some reason. 00:40 <+bridge> [ddnet] what does the exclude_from_all do? 00:40 <+bridge> [ddnet] i'd like to add a file to the BASE variable, but the file gets compiled on its own 00:40 <+bridge> [ddnet] i just want it to be added to the list of files that cmake tracks 00:41 <+bridge> [ddnet] When you press `Build` button in IDE, or do `cmake --build .`, the default CMake target is `ALL`. 00:41 <+bridge> [ddnet] `EXCLUDE_FROM_ALL` means that the (sub)target won't be a part of the default build. IOW it will be build only if something else depends on this target, or if you manually ask CMake to build it (e.g. `cmake --build . --target my-extra-c-files`). 00:42 <+bridge> [ddnet] but it is a dependency of all the executables (i think) 00:42 <+bridge> [ddnet] i dont use IDE, just command line 00:42 <+bridge> [ddnet] im talking ddnet's cmakelist files btw 00:45 <+bridge> [ddnet] Okay, so you want to add a file to a target (`BASE` is the list of source files for target `engine-shared`) and yet you want to exclude that file from the target. 00:45 <+bridge> [ddnet] I don't think this is possible in the intended way. 00:45 <+bridge> [ddnet] You can remove the file from `BASE` later on, but then it'll also disappear e.g. from target source files in IDEs. 00:46 <+bridge> [ddnet] Why do you want this? You want to suppress the warning? But the warning is here exactly to not let you do what you're trying to do. 00:46 <+bridge> [ddnet] im trying to circumvent this 00:47 <+bridge> [ddnet] then โ€” this 00:47 <+bridge> [ddnet] i guess the easiest way would just be to have it in `.h` extension 00:48 <+bridge> [ddnet] tbf, i don't understand the purpose of this warning 00:48 <+bridge> [ddnet] i'll go with renaming the file to .h 00:53 <+bridge> [ddnet] Why have a file which we don't use? 00:55 <+bridge> [ddnet] it is used 00:55 <+bridge> [ddnet] it must be included in another file uniquely 00:56 <+bridge> [ddnet] btw, im sure there's a file that is not used anywhere, i still have to find it 00:56 <+bridge> [ddnet] https://cmake.org/cmake/help/latest/prop_sf/HEADER_FILE_ONLY.html 00:56 <+bridge> [ddnet] anyway, i updated my pr 00:56 <+bridge> [ddnet] i still don't get how to link to the issue properly 00:56 <+bridge> [ddnet] i tried full url and just `#5017`, but it doesn't link to it 00:56 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/5017 00:56 <+bridge> [ddnet] You can mark your `.c` file as a header file which can/should be included by other files but should not be compiled on its own. 00:57 <+bridge> [ddnet] You can mark your `.c` file as a header file which can/should be included by other files but should not be compiled on its own. 00:57 <+bridge> [ddnet] 00:57 <+bridge> [ddnet] https://cmake.org/cmake/help/latest/prop_sf/HEADER_FILE_ONLY.html 00:57 <+bridge> [ddnet] You can mark your `.c`(or `.cpp`, or any other type) file as a header file which can/should be included by other files but should not be compiled on its own. 00:57 <+bridge> [ddnet] 00:57 <+bridge> [ddnet] https://cmake.org/cmake/help/latest/prop_sf/HEADER_FILE_ONLY.html 00:57 <+bridge> [ddnet] You can mark your `.c` (or `.cpp`, or any other type) file as a header file which can/should be included by other files but should not be compiled on its own. 00:57 <+bridge> [ddnet] 00:57 <+bridge> [ddnet] https://cmake.org/cmake/help/latest/prop_sf/HEADER_FILE_ONLY.html 00:59 <+bridge> [ddnet] lol, now it complains about hearder guard, but the file never had any... 00:59 <+bridge> [ddnet] https://cmake.org/cmake/help/latest/command/set_source_files_properties.html 00:59 <+bridge> [ddnet] ```cmake 00:59 <+bridge> [ddnet] set_source_files_properties(src/base/confusables_data.c PROPERTIES 00:59 <+bridge> [ddnet] HEADER_FILE_ONLY ON) 00:59 <+bridge> [ddnet] ``` 01:01 <+bridge> [ddnet] I think this needs CMake newer than `2.8.12`. 01:01 <+bridge> [ddnet] 01:01 <+bridge> [ddnet] I also think that it makes sense to bump CMake version e.g. to `3.8` because it is the first version with declared C++17 support (and we need this support because we use `std::size`). 01:01 <+bridge> [ddnet] I think this requires CMake newer than `2.8.12`. 01:01 <+bridge> [ddnet] I also think that it makes sense to bump CMake version e.g. to `3.8` because it is the first version with declared C++17 support (and we need this support because we use `std::size`). 01:02 <+bridge> [ddnet] I think this requires CMake much newer than `2.8.12`. 01:02 <+bridge> [ddnet] I also think that it makes sense to bump CMake version e.g. to `3.8` because it is the first version with declared C++17 support (and we need this support because we use `std::size`). 01:02 <+bridge> [ddnet] I think this requires CMake much newer than the current minimum `2.8.12`. 01:02 <+bridge> [ddnet] I also think that it makes sense to bump CMake version e.g. to `3.8` because it is the first version with declared C++17 support (and we need this support because we use `std::size`). 01:02 <+bridge> [ddnet] Something to include and not compile standalone should have a .h file ending imo 01:03 <+bridge> [ddnet] Okay, I just checked, this is a valid code for CMake 3.0. 01:05 <+bridge> [ddnet] i changed it finally 01:05 <+bridge> [ddnet] is there a ninja target to run the clang-tidy thing from github? 01:05 <+bridge> [ddnet] i thought `everything` would mean everything 01:07 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/master/.github/workflows/clang-tidy.yml#L28-L29 01:07 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/master/.github/workflows/clang-tidy.yml#L28-L29 01:07 <+bridge> [ddnet] ```sh 01:07 <+bridge> [ddnet] cmake -G Ninja -DCMAKE_CXX_CLANG_TIDY="clang-tidy;-warnings-as-errors=*" -DCMAKE_C_CLANG_TIDY="clang-tidy;-warnings-as-errors=*" -DCMAKE_BUILD_TYPE=Debug -Werror=dev -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=. .. 01:07 <+bridge> [ddnet] cmake --build . --config Debug --target everything -- -k 0 01:07 <+bridge> [ddnet] ``` 01:07 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/master/.github/workflows/clang-tidy.yml#L28-L29 01:07 <+bridge> [ddnet] ```sh 01:07 <+bridge> [ddnet] cmake -G Ninja -DCMAKE_CXX_CLANG_TIDY="clang-tidy;-warnings-as-errors=*" -DCMAKE_C_CLANG_TIDY="clang-tidy;-warnings-as-errors=*" -DCMAKE_BUILD_TYPE=Debug -Werror=dev -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=. .. 01:07 <+bridge> [ddnet] cmake --build . --config Debug --target everything -- -k 0 01:07 <+bridge> [ddnet] ``` 01:07 <+bridge> [ddnet] you can also add a -fix there, it c an fix some things automatically, but then you have to compile with -j 1 01:08 <+bridge> [ddnet] It means everything, but for clang-tidy we have to setup CMake configuration differently. 01:09 <+bridge> [ddnet] (wrong spacing in `EXCEPTIONS = [`) 01:10 <+bridge> [ddnet] (inconsistent spacing in `EXCEPTIONS = [`) 01:10 <+bridge> [ddnet] sorry, i meant the `check-style`, but i guess i could also run the `clang-tidy`oneas well ๐Ÿ˜‰ 01:12 <+bridge> [ddnet] scripts/fix_style.py 01:13 <+bridge> [ddnet] check-style has more than fix_style 01:13 <+bridge> [ddnet] each commit i discover new things ๐Ÿ˜„ 01:14 <+bridge> [ddnet] i had the check_header_guards, now the pylint 01:54 <+bridge> [ddnet] @heinrich5991 what's the purpose of this file `CMakeFiles/DDNet.dir/src/game/generated/checksum.cpp.o` ? 02:58 <+bridge> [ddnet] voodoo 10:18 <+bridge> [ddnet] wow, i think we should maybe switch to nanoseconds 10:18 <+bridge> [ddnet] an update takes 4 microseconds times 0.1 = 0 casted to int xd 11:37 <+bridge> [ddnet] did anyone ever use DbgHitch? 11:44 <+bridge> [ddnet] @heinrich5991 is the antibot always compiled when ddnet server compiles? 11:46 <+bridge> [ddnet] I think we just put the .so file there, don't recompile it 11:46 <+bridge> [ddnet] ok 11:46 <+bridge> [ddnet] too bad, bcs would be easier if system would allow c++ signatures 11:47 <+bridge> [ddnet] @bencie do you have a github account? 11:47 <+bridge> [ddnet] maybe u can try #5075 later 11:47 <+bridge> [ddnet] 11:47 <+bridge> [ddnet] i dunno if that fixes the video rendering bug, but at least worth a try 11:47 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/5075 11:47 <+bridge> [ddnet] Yeah the username is bencie. 11:48 <+bridge> [ddnet] u can download the assets from the github action once its ready https://github.com/ddnet/ddnet/actions/runs/2285982902 11:49 <+bridge> [ddnet] Sure 12:05 <+bridge> [ddnet] real bencie??? 12:05 <+bridge> [ddnet] No. 12:05 <+bridge> [ddnet] oh 12:05 <+bridge> [ddnet] cat๐Ÿด 12:11 <+bridge> [ddnet] Doesn't noby just provides the so to avoid sharing the code? 12:11 <+bridge> [ddnet] Or ur in his trusted list xd 12:11 <+bridge> [ddnet] (supposing you're using noby's ab) 12:11 <+bridge> [ddnet] heinrich is in his trusted list 12:11 <+bridge> [ddnet] Ah 12:13 <+bridge> [ddnet] Afterall noby's ab is written in C 12:13 <+bridge> [ddnet] nobyC* 12:13 <+bridge> [ddnet] nobys code is more like random hex numbers xd 12:13 <+bridge> [ddnet] that magically work 12:14 <+bridge> [ddnet] I mean idk how he can fcking work on that, even me when I look at his ab code I give up instantly 12:14 <+bridge> [ddnet] He's not even using any obfuscator 12:14 <+bridge> [ddnet] He's obfuscating by himself, that's why I call that nobyC 12:14 <+bridge> [ddnet] true ๐Ÿ˜„ 12:31 <+bridge> [ddnet] lmao 13:41 <+bridge> [ddnet] one of the few pieces of code that I gave up on reading instantly 13:47 <+bridge> [ddnet] Lol, noby madman 13:48 <+bridge> [ddnet] he's good but too lazy to write properly xD 13:49 <+bridge> [ddnet] doesnt he use a file based database 13:49 <+bridge> [ddnet] for fng 13:50 <+bridge> [ddnet] ah u mean simple txt file, not even sqlite? 13:50 <+bridge> [ddnet] probably, that's the easiest for him 13:51 <+bridge> [ddnet] probably, that's the easiest for him & fastest thing to do for him 13:54 <+bridge> [ddnet] ah yeah i remember the start of his server always took a while 13:54 <+bridge> [ddnet] 13:55 <+bridge> [ddnet] but i guess he already changed it 16:29 <+bridge> [ddnet] Figured out the performance issue, I was testing out a a cpufreq governor before I left for 2 weeks, I apparently never deleted that kernel I was testing out 16:35 <+bridge> [ddnet] gg 16:49 < ***> Buffer Playback... 16:49 <+bridge> [16:44:05] [ddnet] lmao wtf 16:49 <+bridge> [16:44:14] [ddnet] why 16:49 <+bridge> [16:44:33] [ddnet] cuz he is noby 16:49 <+bridge> [16:45:09] [ddnet] isnt gnu gold slower than lld 16:49 <+bridge> [16:45:30] [ddnet] thought the same, but have no benchmarks for lto 16:49 <+bridge> [16:45:58] [ddnet] but mold wins tho 16:49 <+bridge> [16:46:04] [ddnet] u mean ld ? 16:49 <+bridge> [16:46:08] [ddnet] bcs it can do lto multi threaded afaik 16:49 <+bridge> [16:46:12] [ddnet] lld 16:49 <+bridge> [16:46:14] [ddnet] is from clang 16:49 <+bridge> [16:46:16] [ddnet] or llvm 16:49 <+bridge> [16:46:21] [ddnet] oh y llvm 16:49 <+bridge> [16:48:07] [ddnet] so you guys have change the built in linker ? 16:49 <+bridge> [16:48:18] [ddnet] no why 16:49 <+bridge> [16:48:27] [ddnet] i mean by default i have ld, not lld 16:49 <+bridge> [16:48:34] [ddnet] yes but we dont change anything 16:49 <+bridge> [16:48:36] [ddnet] use what u want 16:49 <+bridge> [16:48:46] [ddnet] i also doubt that pr goes through 16:49 <+bridge> [16:48:59] [ddnet] tho LTO is nice, i also use it for my client ๐Ÿ˜„ 16:49 <+bridge> [16:49:03] [ddnet] with ofast 16:49 <+bridge> [16:49:08] [ddnet] legendary compile options 16:49 < ***> Playback Complete. 16:49 <+bridge> [ddnet] xd 16:50 <+bridge> [ddnet] ofast is the equivalent of o3 no ? 16:50 <+bridge> [ddnet] no 16:50 <+bridge> [ddnet] isnt exactly the same thing ? 16:50 <+bridge> [ddnet] its even more aggressive 16:50 <+bridge> [ddnet] ofast enables fast math 16:50 <+bridge> [ddnet] ofast also allows non standard stuff 16:50 <+bridge> [ddnet] mmh okok 16:50 <+bridge> [ddnet] "Disregard strict standards compliance. -Ofast enables all -O3 optimizations. It also enables optimizations that are not valid for all standard-compliant programs. It turns on -ffast-math, -fallow-store-data-races and the Fortran-specific -fstack-arrays, unless -fmax-stack-var-size is specified, and -fno-protect-parens. It turns off -fsemantic-interposition." 16:50 <+bridge> [ddnet] here the description from GCC 16:51 <+bridge> [ddnet] ok there are some additional features 16:51 <+bridge> [ddnet] its nice to find bugs in your code xd 16:51 <+bridge> [ddnet] bcs UB is often compiled differently with ofast 16:55 <+bridge> [ddnet] https://raw.githubusercontent.com/rui314/mold/main/docs/htop.gif 16:55 <+bridge> [ddnet] 16:55 <+bridge> [ddnet] lld vs mold 16:55 <+bridge> [ddnet] lmao i love gifs like these 16:55 <+bridge> [ddnet] they are kinda art 16:56 <+bridge> [ddnet] same 16:56 <+bridge> [ddnet] mold looks way faster wtf 16:56 <+bridge> [ddnet] ofc 16:56 <+bridge> [ddnet] mold is the state of the art linker 16:56 <+bridge> [ddnet] https://raw.githubusercontent.com/rui314/mold/main/docs/comparison.png 16:56 <+bridge> [ddnet] made by the lld author 16:57 <+bridge> [ddnet] y i just saw this 16:57 <+bridge> [ddnet] the bigger ur program the faster it is 16:57 <+bridge> [ddnet] on ddnet it probs make little diff 16:57 <+bridge> [ddnet] lmao `shorted is better` 16:57 <+bridge> [ddnet] lmao `shorter is better` 16:57 <+bridge> [ddnet] imagine you need to read it 16:57 <+bridge> [ddnet] gnu gold sucks hard xd 16:58 <+bridge> [ddnet] might be imagination but feels a bit faster ๐Ÿ˜„ 16:58 <+bridge> [ddnet] who use gnu gold ? 16:59 <+bridge> [ddnet] idk 16:59 <+bridge> [ddnet] before lld existed it was the best i guess 16:59 <+bridge> [ddnet] GPL enjoyers xd 16:59 <+bridge> [ddnet] lld and mold are from the same author 16:59 <+bridge> [ddnet] tthat guy is a genius 16:59 <+bridge> [ddnet] `gold was about 3x/4x faster than LD.` 16:59 <+bridge> [ddnet] ah yeah 16:59 <+bridge> [ddnet] kinda cringe 16:59 <+bridge> [ddnet] ld 16:59 <+bridge> [ddnet] xd 17:00 <+bridge> [ddnet] > Why does the speed of linking matter? 17:00 <+bridge> [ddnet] > 17:00 <+bridge> [ddnet] > If you are using a compiled language such as C, C++ or Rust, a build consists of two phases. In the first phase, a compiler compiles source files into object files (.o files). In the second phase, a linker takes all object files to combine them into a single executable or a shared library file. 17:00 <+bridge> [ddnet] lmao 17:00 <+bridge> [ddnet] the github repo mentions rust 17:00 <+bridge> [ddnet] based 17:00 <+bridge> [ddnet] > mold is written in C++20, so if you build mold yourself, you need a recent version of a C++ compiler and a C++ standard library. GCC 10.2 or Clang 12.0.0 (or later) as well as libstdc++ 10 or libc++ 7 (or later) are recommended. 17:00 <+bridge> [ddnet] more based 17:01 <+bridge> [ddnet] y the linking step is important too 17:01 <+bridge> [ddnet] i have gcc 11.2.0 17:01 <+bridge> [ddnet] ez 17:02 <+bridge> [ddnet] i have clang 15 17:02 <+bridge> [ddnet] @Not Keks mold is agpl 17:03 <+bridge> [ddnet] uff 17:03 <+bridge> [ddnet] thats good 17:03 <+bridge> [ddnet] no reason to use gnu gold 17:04 <+bridge> [ddnet] he has to be dead for 70 years before copyright lifts 17:04 <+bridge> [ddnet] there is nothing good about copyrights 17:05 <+bridge> [ddnet] u live in germany 17:05 <+bridge> [ddnet] but most software today wont be used in 20 years anyway 17:05 <+bridge> [ddnet] they dislike public domain there 17:05 <+bridge> [ddnet] so who cares xd 17:05 <+bridge> [ddnet] so agpl is the next best thing 17:05 <+bridge> [ddnet] CC0 or nub 17:05 <+bridge> [ddnet] to contribute to sqlite 17:05 <+bridge> [ddnet] u have to sign things 17:05 <+bridge> [ddnet] xD 17:05 <+bridge> [ddnet] cuz public domain 17:05 <+bridge> [ddnet] countries suck at public domain 17:06 <+bridge> [ddnet] how the fuck can i know which linker im using ? 17:06 <+bridge> [ddnet] what compiler do u use? 17:07 <+bridge> [ddnet] i mean its obvious im using ld but how can i find the version 17:07 <+bridge> [ddnet] -DCMAKE_EXE_FLAGS="-v" 17:07 <+bridge> [ddnet] should tell you i guess 17:07 <+bridge> [ddnet] Who use CMake 2.8.12? It is nine years old. Who use `0` instead of `nullptr`? Even `nullptr` is 11 years old. Who use `virtual` instead of `override`? 17:07 <+bridge> [ddnet] 17:07 <+bridge> [ddnet] You know, there are some projects... 17:07 <+bridge> [ddnet] xd 17:07 <+bridge> [ddnet] who doesnt use c++23 17:07 <+bridge> [ddnet] dont u have to use virtual with override? 17:07 <+bridge> [ddnet] y wtf 17:07 <+bridge> [ddnet] no 17:08 <+bridge> [ddnet] true story 17:08 <+bridge> [ddnet] u only need virtual for the base instance 17:08 <+bridge> [ddnet] all others just use override 17:08 <+bridge> [ddnet] no virtual keyword is needed 17:08 <+bridge> [ddnet] u need 17:08 <+bridge> [ddnet] for the base 17:08 <+bridge> [ddnet] u said it 17:08 <+bridge> [ddnet] y just for the base 17:08 <+bridge> [ddnet] y but someone added virtual ... override into our codebase 17:08 <+bridge> [ddnet] i saw that recently xd 17:10 <+bridge> [ddnet] anyway, from the devs except maybe chrain most use arch i think (except me xd) 17:10 <+bridge> [ddnet] It made some sense 10 years ago โ€” when someone still used to place `virtual` to the overridden methods. Yet, having `override` allows to catch some bugs (and thus simplify refactoring). 17:10 <+bridge> [ddnet] just use c++17 17:10 <+bridge> [ddnet] deen also upgraded to debian 10 17:10 <+bridge> [ddnet] ๐Ÿ˜ฎ 17:10 <+bridge> [ddnet] who uses c++? use rust 17:11 <+bridge> [ddnet] should have added 17:11 <+bridge> [ddnet] at the end 17:11 <+bridge> [ddnet] yes pls start 17:11 <+bridge> [ddnet] we need a leader 17:11 <+bridge> [ddnet] xd 17:11 <+bridge> [ddnet] xd 17:12 <+bridge> [ddnet] and ddnet is from 2013 xd 17:12 <+bridge> [ddnet] @Not Keks replace gameworld with https://github.com/skypjack/entt 17:12 <+bridge> [ddnet] so 9 years 17:12 <+bridge> [ddnet] find the error xddd 17:13 <+bridge> [ddnet] yes minecraft components 17:13 <+bridge> [ddnet] lets go 17:13 <+bridge> [ddnet] ๐Ÿ˜Š 17:13 <+bridge> [ddnet] not c omponents 17:13 <+bridge> [ddnet] its a ECS 17:13 <+bridge> [ddnet] imagine using all cores 17:13 <+bridge> [ddnet] sounds cool 17:13 <+bridge> [ddnet] but look at our codebase 17:13 <+bridge> [ddnet] how can u not break everything xD 17:13 <+bridge> [ddnet] even changing 1 line often causes bugs xD 17:14 <+bridge> [ddnet] ye 17:50 <+bridge> [ddnet] ddnet.tw offline, is that intentional? 17:51 <+bridge> [ddnet] i doubt also just saw it 17:55 <+bridge> [ddnet] @deen u are needed 17:55 <+bridge> [ddnet] deen: ^ 17:59 <+bridge> [ddnet] btw @deen @heinrich5991 17:59 <+bridge> [ddnet] 17:59 <+bridge> [ddnet] https://master1.ddnet.tw/ddnet/15/servers.json failed. libcurl error: Operation too slow. Less than 8000 bytes/sec transferred the last 10 seconds 17:59 <+bridge> [ddnet] 17:59 <+bridge> [ddnet] in this rare case my browser does not fail to download it (just takes over 10 seconds) while the client does 18:00 <+bridge> [ddnet] maybe it should still keep trying or smth but already act like it failed 18:40 <+bridge> [ddnet] its possible to change the ping (server side) ? 18:50 <+bridge> [ddnet] why 0 server? 19:00 <+bridge> [ddnet] Is it possible to have clipping feature work like a tileset? So that you can cut out round shapes, corners and areas that aren't connected to each other? 19:06 <+bridge> [ddnet] u can do anything, just need to break compability with old clients and vanilla 19:26 <+bridge> [ddnet] i know how it sad is to maintain legacy code 19:35 <+bridge> [ddnet] i almost made a pr for this ๐Ÿ˜„ 19:35 <+bridge> [ddnet] then i thought that it was kinda useless 19:36 <+bridge> [ddnet] please don't scorch my name ๐Ÿ˜ข 19:36 <+bridge> [ddnet] its not ur fault 19:36 <+bridge> [ddnet] its your work place xd 19:37 <+bridge> [ddnet] uh? 19:37 <+bridge> [ddnet] werent u forced to use ubuntu 18? 19:38 <+bridge> [ddnet] ah, i won't upgrade before finishing my manuscript 19:38 <+bridge> [ddnet] too many risks 19:39 <+bridge> [ddnet] but i still compiled gcc12 and clang12 somewhere 19:39 <+bridge> [ddnet] ๐Ÿ‘ 19:39 <+bridge> [ddnet] arch chad 19:39 <+bridge> [ddnet] xd 19:39 <+bridge> [ddnet] the problem is that gcc12 links to its own lib and then the binary wont find them if i don't change LD_LIBRARY_PATH 19:54 <+bridge> [ddnet] imagine not using arch 19:55 <+bridge> [ddnet] in 2022 19:55 <+bridge> [ddnet] bruh 20:04 <+bridge> [ddnet] fr 21:21 <+bridge> [ddnet] u can edjt the tileset 21:23 <+bridge> [ddnet] https://dollchan.net/bytebeat/#v3b64q1ZKzk9JVbJSKtHSKFEzNDO2MLE3szLV1NIw0dUwVCuxs7PQ1LSz0zBW0wWyLTVrgKSZUi0A 21:27 <+bridge> [ddnet] http://us.metamath.org/mpeuni/mmset.html 22:19 <+bridge> [ddnet] https://www.reddit.com/r/linuxmemes/comments/ukgr2i/_/?utm_medium=android_app&utm_source=share 22:19 <+bridge> [ddnet] @Not Keks xd 22:26 <+bridge> [ddnet] u are my beta tester thanks ๐Ÿ˜‰