08:24 < bridge> Wow 08:36 < bridge> done 08:53 < bridge> ``` 08:53 < bridge> ignore = [ 08:53 < bridge> "D", # docsstring 08:53 < bridge> "T201", # `print` found 08:53 < bridge> "W191", # Indentation contains tabs 08:53 < bridge> "ANN001", # Missing type annotation for function argument 08:53 < bridge> "ANN002", # Missing type annotation for `*args` 08:53 < bridge> "ANN003", # Missing type annotation for `**kwargs` 08:53 < bridge> "ANN201", # Missing return type annotation for public function `unhex_sequence` 08:53 < bridge> "ANN204", # Missing return type annotation for special method `{method}` 08:53 < bridge> "ANN205", # Missing return type annotation for staticmethod `{staticmethod}` 08:53 < bridge> "ANN206", # Missing return type annotation for classmethod `{classmethod}` 08:53 < bridge> "N801", # Class name `CLASS_NAME` should use CapWords convention 08:53 < bridge> "INP001", # File `{file.py}` is part of an implicit namespace package. Add an `__init__.py 08:53 < bridge> "ERA001", # Commented-out code 08:53 < bridge> "COM812", # Trailing comma missing 08:53 < bridge> "EM101", # Exception must not use a string literal, assign to variable first 08:53 < bridge> "TRY003", # Avoid specifying long messages outside the exception class 08:53 < bridge> "PLR2004", # Magic value used in comparison, consider replacing `{number}` with a constant variable 08:53 < bridge> "FIX002", # Line contains TODO, consider resolving the issue 08:53 < bridge> "TD002", # Missing author in TODO; try: `# TODO(): ...` or `# TODO @: ...` 08:53 < bridge> "TD003", # Missing issue link for this TODO 08:53 < bridge> "TD004", # Missing colon in TODO 08:53 < bridge> "TD005", # Missing issue description after `TODO` 08:53 < bridge> "ANN202", # Missing return type annotation for private function `{func}` 08:53 < bridge> ] 08:53 < bridge> ``` 08:53 < bridge> 08:53 < bridge> ``` 08:54 < bridge> Found 267 errors. 08:54 < bridge> No fixes available (31 hidden fixes can be enabled with the `--unsafe-fixes` option). 08:57 < bridge> I know ... 08:57 < bridge> But i refuse to work on the python files if it stays like this 08:58 < bridge> > "W191", # Indentation contains tabs 08:58 < bridge> are you kidding me not even that with the 1 line indent rule 09:02 < bridge> I completely forgot that `ruff format` fixes this :) 09:03 < bridge> try to do the PR with as little changes as possible - then we start working on it bit by bit ;_; 09:05 < bridge> ^^ 09:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1448586431982211094/image.png?ex=693bccbe&is=693a7b3e&hm=4bf311a811bede79d81f83a5bf962a08cea5e53f80d080fc52324a080909339f& 09:06 < bridge> looks like the indents are not 1 ? 09:07 < bridge> It's not difficult to fix this. 09:07 < bridge> yes, but as I said, I'd do this sperately, or you'll cause 5000 LOC changes 😄 09:07 < bridge> yes, but as I said, I'd do this seperately, or you'll cause 5000 LOC changes 😄 09:07 < bridge> yes, but as I said, I'd do this separately, or you'll cause 5000 LOC changes 😄 09:08 < bridge> 09:11 < bridge> I think it looks terrible. 09:11 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1448587910558253096/image.png?ex=693bce1f&is=693a7c9f&hm=c609a1c995c8a9582d8d54b40e076bc1a52266f15e8b037912cbb8181e49838d& 09:12 < bridge> yes it does look terrible, the python files in this project **ARE** terrible. 09:12 < bridge> at least most of them - I find the integration tests smart, talking about the formatting 09:12 < bridge> Should've went with chillers approach to just bash script everything :froggo_sip: 09:12 < bridge> only if he introduces a bash formatter 09:13 < bridge> Windows users will disagree with you :) 09:14 < bridge> do you know if it reverse-fixes some 4 indent code lines? 09:14 < bridge> style.ps1 09:14 < bridge> Style2.ps1 09:17 < bridge> ``` 09:17 < bridge> indent-width = 4 09:17 < bridge> 09:17 < bridge> [format] 09:17 < bridge> indent-style = "space" 09:17 < bridge> quote-style = "double" 09:17 < bridge> skip-magic-trailing-comma = false 09:17 < bridge> line-ending = "auto" 09:17 < bridge> ``` 09:17 < bridge> 09:17 < bridge> This is what I have now, but even so, some of the code is changing, and it already comes out to 6,000 lines... 09:17 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1448589557904707594/image.png?ex=693bcfa8&is=693a7e28&hm=e596b50ba9a4cb3d893d8e8d0c084901dcadac2782b53e21c849ab4583ad876e& 09:18 < bridge> and 1 ident style leaves how many LOC? 09:19 < bridge> (yes it's fucking ugly and I hate it, but introducing ruff is just the first step) 09:19 < bridge> Even more lines are changing :) 09:19 < bridge> even more, great 🙂 09:19 < bridge> and doing this bit by bit, now only for the scripts/languages subdirectory? :justatest: 09:20 < bridge> because we can safely touch them without breaking anything major 09:20 < bridge> https://github.com/ByFox213/ddnet-insta-fork/commit/30423ece4b3a7dc024fc4eb6da643b4cca3d0fec :) 09:22 < bridge> Indent width 1 is terrible 09:23 < bridge> okay do the 4 width 6K LOC PR, I press merge, and then I wait for heinrich to kick me 09:23 < bridge> xd 09:24 < bridge> if you don't want me kicked, introduce this only for a subdirectory like scripts/languages and we do this dir for dir then 09:24 < bridge> because this is insane, I have a PR waiting for sorting translations, but I can't even format it properly to the nonexistent style 09:28 < bridge> ``` 09:29 < bridge> Found 39 errors. 09:29 < bridge> ``` 09:29 < bridge> 09:29 < bridge> good ^^ 09:31 < bridge> yes, where merge button 🟢 09:39 < ws-client> **** @byfox @Assa yes yes yes pls fix all the pyson 🚀 09:40 < bridge> This is not a quick matter >.< 09:40 < bridge> what kind of matter is it? 09:41 < bridge> ignore me 09:42 < bridge> @essigautomat BTW regarding death prediction, we can predict death tiles and just wait until the server respawns the player. that fixes everything lol, you will just have a delayed respawn. 09:53 < bridge> just wait for the ticket of the unbearable new respawn waiting time of 0.3 seconds then 09:53 < bridge> if they have 300ms ping this is the default anyway lol? 09:54 < bridge> its literally the same thing but it fixes death tiles messing with my brain stimulation when playing on high ping/margin 10:34 < bridge> Does anyone know how to build ddnet with emscripten? My current approach is to run 10:34 < bridge> ``` 10:34 < bridge> mkdir -p build && \ 10:34 < bridge> cd build && \ 10:34 < bridge> emcmake cmake .. \ 10:34 < bridge> -DCMAKE_BUILD_TYPE=Release \ 10:34 < bridge> -DWEBSOCKETS=OFF \ 10:34 < bridge> -DCLIENT=ON \ 10:34 < bridge> -DSERVER=OFF \ 10:34 < bridge> -DVULKAN=OFF \ 10:34 < bridge> -DTOOLS=OFF \ 10:35 < bridge> -DAUTOUPDATE=OFF \ 10:35 < bridge> -DPREFER_BUNDLED_LIBS=ON \ 10:35 < bridge> && make -j$(nproc) 10:35 < bridge> ``` 10:35 < bridge> 10:35 < bridge> but somehow it cant find the bundled libs 10:35 < bridge> git submodule update --init --recursive 10:35 < bridge> Mhmmm, I do have the libs already in there 10:42 < bridge> bruh, I can't think of a commit name for this 10:44 < bridge> @essigautomat What do you think about these changes? 10:44 < bridge> 10:44 < bridge> https://github.com/ByFox213/ddnet-insta-fork/commit/6d5736c64753a991391683548268da1f1e5edcbc 10:44 < bridge> https://github.com/ByFox213/ddnet-insta-fork/commit/5d59f1473e011675640f68a3742b5eb421c90ea8 10:52 < bridge> Check the readme: https://github.com/ddnet/ddnet?tab=readme-ov-file#cross-compiling-on-linuxwindows-to-android 10:52 < bridge> You need to build the libraries for Emscripten yourself. 10:52 < bridge> Check the readme: https://github.com/ddnet/ddnet?tab=readme-ov-file#cross-compiling-on-linux-to-webassembly-via-emscripten 10:52 < bridge> You need to build the libraries for Emscripten yourself. 10:52 < bridge> Check the readme: https://github.com/ddnet/ddnet?tab=readme-ov-file#cross-compiling-on-linux-to-webassembly-via-emscripten 10:52 < bridge> You need to build the libraries for Emscripten yourself. 10:52 < bridge> Check the readme: https://github.com/ddnet/ddnet?tab=readme-ov-file#cross-compiling-on-linux-to-webassembly-via-emscripten 10:52 < bridge> You need to build the libraries for Emscripten yourself. 11:01 < bridge> <0xdeen> Out of curiosity: What are you planning to do? 11:05 < bridge> A teeworlds replay reviewer. 11:05 < bridge> 11:05 < bridge> 1. Currently we load the .teehistorian through a pipeline 11:05 < bridge> 2. parse it & remove pii data & rename all players to Player_ 11:05 < bridge> 3. Convert with `tee-hee` to a .demo 11:05 < bridge> 4. Download the .demo in a React application 11:05 < bridge> 11:05 < bridge> And to actually show the gameplay we want to use the ddnet client with the built in replay to actually replay it without writing our own emulator for it 11:06 < bridge> Second commit: missing new lines - do we need to remove pylint? 11:07 < bridge> We use ruff to replace pylint and formatters. ^^ 11:08 < bridge> yes but we are currently only doing it for one directory 11:09 < bridge> A teeworlds replay reviewer. 11:09 < bridge> 11:09 < bridge> 1. Currently we load the .teehistorian through a pipeline 11:09 < bridge> 2. parse it & remove pii data & rename all players to Player_ 11:09 < bridge> 3. Convert with `tee-hee` to a .demo 11:09 < bridge> 4. Download the .demo in a React application 11:09 < bridge> 11:09 < bridge> And to actually show the gameplay we want to use the ddnet client with the built in replay to actually replay it without writing our own emulator for it 11:09 < bridge> 11:09 < bridge> FYI: We are also thinking about a more protected approach to avoid TAS or any other tool to use this .demo data to generate TAS input out of it. 11:09 < bridge> 11:10 < bridge> The overall idea is to have something like CS:GO Overwatch in place 11:10 < bridge> Any comments regarding the first commit? 11:10 < bridge> Yes, trying to 😄 11:11 < bridge> go ahead, I read into it, have seen that you need to replace variable names, partly for bad naming, partly for shading - lost hope - ✅ 11:11 < bridge> go ahead, I read into it, have seen that you need to replace variable names, partly for bad naming, partly for shadowing - lost hope - ✅ 11:12 < bridge> Yes, the code there is terrible :) 11:13 < bridge> I'll submit a pull request and we'll see what happens :) 11:14 < bridge> In the worst case we break something 🙂 and then fix it 11:14 < bridge> worst case your pc explodes :) 11:15 < bridge> nothing accelerates windows better than 9.81m/s^2 11:15 < bridge> ``` 11:15 < bridge> scripts/languages/to_csv.py:10:0: W0311: Bad indentation. Found 4 tabs, expected 1 (bad-indentation) 11:15 < bridge> scripts/languages/to_csv.py:13:0: W0311: Bad indentation. Found 4 tabs, expected 1 (bad-indentation) 11:15 < bridge> scripts/languages/to_csv.py:14:0: W0311: Bad indentation. Found 4 tabs, expected 1 (bad-indentation) 11:15 < bridge> ************* Module analyze 11:15 < bridge> scripts/languages/analyze.py:14:0: W0311: Bad indentation. Found 4 tabs, expected 1 (bad-indentation) 11:15 < bridge> scripts/languages/analyze.py:15:0: W0311: Bad indentation. Found 4 tabs, expected 1 (bad-indentation) 11:15 < bridge> scripts/languages/analyze.py:16:0: W0311: Bad indentation. Found 4 tabs, expected 1 (bad-indentation) 11:15 < bridge> ``` 11:15 < bridge> First, you need to set ignores on these files :\ 11:15 < bridge> i'd argue -Ofast but you're right 11:15 < bridge> yes you need to ignore it, but that*s really simple 11:16 < bridge> just add `-not -path 'Scripts/languages/'` (or something like that was it) 11:16 < bridge> ``` 11:16 < bridge> # pylint: disable=bad-indentation 11:16 < bridge> ``` 11:16 < bridge> :) 11:17 < bridge> or like this 11:17 < bridge> I'd have ignored dir by dir until everything is ignored and we can remove pylint 11:48 < bridge> You guys be cooking 11:51 < bridge> honestly i would just remove step 1,2 and 3 and just let the server record demos directly. ofc this doesn't work for kog since they probably want to review older footage too. I also don't know how well demos scale in terms of file size, i heard they compress pretty well 11:52 < bridge> Too big 11:52 < bridge> Teehistorian is much better 11:52 < bridge> Let's try our luck :) 11:52 < bridge> Cries in 1tb multeasymap teehistorian 11:52 < bridge> (not actually but some .teehistorians we have are around 2-300gb xd 11:52 < bridge> the resulting demos can barely called demos imo xd 11:52 < bridge> (not actually, but some .teehistorians we have are around 2-300gb xd) 11:53 < bridge> Actually, Deen if you're here, what's the largest sized uncompressed .teehistorian we have? 11:53 < bridge> I broke the demo player with a few generated demos from teehistorians, if they exceed ~90hours 11:55 < bridge> i calculated around 900mb for 24h of gameplay with 64 tees 11:55 < bridge> i guess it's a little big 11:59 < bridge> for your 60 servers i'd say about 8-10GB per day 12:00 < bridge> if you actually compress that then it is probably <1GB 12:04 < ws-client> **** i just vibe coded a feature i could have never written my self with only 1 prompt using duck.ai and it felt great 12:05 < ws-client> **** putting prompt engineer on my CV now 12:09 < bridge> Just game data? 12:09 < bridge> Excluding chat messages, commands and so on? 12:09 < bridge> We have millions of .teehistorian files laying around, so we want them to be replayable 12:09 < bridge> makes sense 12:18 < bridge> which part of demos makes them larger than teehistorian? Is it just projectile positions? 12:19 < bridge> we save tee positions in teehistorian anyway? 12:20 < bridge> I dont know which part, they are just larger & the compression ratio is not that good on .demo 12:20 < bridge> atleast from what I have tried so far 12:20 < bridge> well yes but I mean in theory 12:21 < bridge> like if we had a format that could turn into demo without physics, how much larger would it be? 12:21 < bridge> tbh I would say anything less than 3x larger is worth it to not need to maintain a physics accurate parser 12:22 < bridge> @totar should my config path be frametee or ddnet_frametee 12:22 < bridge> frametee? 12:22 < bridge> okay, the repo is called ddnet_frametee 12:22 < bridge> ok 12:22 < bridge> oh 12:22 < bridge> then do ddnet_frametee whatever 12:22 < bridge> or change the repo name 12:22 < bridge> or plan to change the repo name and never do it 12:23 < bridge> im gonna change the repo name 12:23 < bridge> some day 12:23 < bridge> option 3 12:24 < bridge> i think it's funny that ddnet physics are basically a big decryption machine 12:32 < bridge> then call it netdd_tramefee 12:35 < bridge> i meant in reference of the tee historian files, if you don't have the exact starting conditions and and the correct physics engine you won't get the correct results at the tick you want. the physics encrypt the game state and it isn't reversible based on the end state. 12:42 < bridge> hi 12:42 < bridge> @all hi 12:44 < bridge> @everyone hi 12:44 < bridge> @everyone hi 12:45 < bridge> im new in this server 12:46 < bridge> @byfox you didn't add the missing newlines :pepeW: 12:51 < bridge> the changed submodules is worse and is what actually stops me from merging 12:51 < bridge> bruh 12:55 < bridge> @avolicious anyways here is a demo of us playing together :troll: 12:55 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1448644429526208659/avoo.demo?ex=693c02c2&is=693ab142&hm=4c92de928f7789932e13c622c54b2ad215eed139eb712278f049011a4df5926e& 12:55 < bridge> I didn't notice I added them :\ 12:55 < bridge> 12:55 < bridge> I changed them 13:00 < bridge> toml is such a nice format 13:05 < bridge> @totar i should make a feature that lets me allows me to load demos and use them as a starting point. imagine how trippy it would be if there is a random t0 and suddenly the all sync up and do a 10 tee fly into 10 tile aled or smth xD 13:07 < bridge> @totar i should make a feature that lets me allows me to load demos and use them as a starting point. imagine how trippy it would be if there is a random t0 and suddenly they all sync up and do a 10 tee fly into 10 tile aled or smth xD 13:14 < bridge> <0xdeen> That's amazing. I was hoping someone would build that! 13:31 < bridge> Woaaah, thats a long time ago 😄 13:32 < bridge> This is the current draft for the webui @0xdeen 13:33 < bridge> lollll xD this looks so similar to my ui 13:33 < bridge> Show me your UI 😄 13:33 < bridge> Need some inspiration 13:35 < bridge> imo my UI still looks very bad i also need inspiration xddd 13:35 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1448654462418686073/2025-12-11_13-33-58.mp4?ex=693c0c1a&is=693aba9a&hm=857f6acb564ecd4db36dc4881a4d17d81cb3953402ebeb24c9af9ef9b7985932& 13:37 < bridge> i somehow need to make imgui not ugly 13:37 < bridge> Ah, the timeline looks nice 13:38 < bridge> Is StarCraft 3 actually running now? 13:38 < bridge> :pepeH: 13:38 < bridge> 💀 13:40 < bridge> i had to decide between https://github.com/NickVanheer/ImTimeline , https://github.com/CedricGuillemet/ImGuizmo?tab=readme-ov-file#imsequencer and making it myself, the decision was pretty clear xDD 13:43 < bridge> starcraft 3? :( 13:43 < bridge> you got some early access or smth?? xD 13:48 < bridge> ``` 13:48 < bridge> > cloc timeline 13:48 < bridge> 11 text files. 13:48 < bridge> 11 unique files. 13:48 < bridge> 0 files ignored. 13:48 < bridge> 13:48 < bridge> github.com/AlDanial/cloc v 2.06 T=0.02 s (632.8 files/s, 181200.6 lines/s) 13:48 < bridge> ------------------------------------------------------------------------------- 13:48 < bridge> Language files blank comment code 13:48 < bridge> ------------------------------------------------------------------------------- 13:48 < bridge> C 5 458 152 2256 13:48 < bridge> C Header 6 50 23 211 13:48 < bridge> ------------------------------------------------------------------------------- 13:48 < bridge> SUM: 11 508 175 2467 13:48 < bridge> ------------------------------------------------------------------------------- 13:48 < bridge> ``` 13:48 < bridge> only a few loc :nouis: 13:52 < bridge> ``` 13:52 < bridge> > cloc timeline 13:52 < bridge> 11 text files. 13:52 < bridge> 11 unique files. 13:52 < bridge> 0 files ignored. 13:52 < bridge> 13:52 < bridge> github.com/AlDanial/cloc v 2.06 T=0.02 s (632.8 files/s, 181200.6 lines/s) 13:52 < bridge> ------------------------------------------------------------------------------- 13:52 < bridge> Language files blank comment code 13:52 < bridge> ------------------------------------------------------------------------------- 13:52 < bridge> C 5 458 152 2256 13:52 < bridge> C Header 6 50 23 211 13:52 < bridge> ------------------------------------------------------------------------------- 13:52 < bridge> SUM: 11 508 175 2467 13:52 < bridge> ------------------------------------------------------------------------------- 13:52 < bridge> ``` 13:52 < bridge> only a few loc :nouis: 14:05 < bridge> it does have a bunch of features though 14:25 < bridge> hey @byfox did you use AI btw? Because you removed all checkboxes :kek: 14:26 < bridge> I always clean them up :D 14:27 < bridge> you have seen that I requested changes again? Also robyt selfrequested 14:29 < bridge> Your changes were only reflected after the page was refreshed. I saw that robot appointed himself 14:29 < bridge> what advantage does it have to not do 1 6000loc change pr? 14:30 < bridge> the git blame will still be overwritten. or maybe git has some feature to disable that lol 14:34 < bridge> I changed what you asked for, we are waiting for a solution robyt^^ 14:37 < bridge> The AI at work now has an emoji generator, this is the python ruff emoji apparently: "🐍🔧" 17:58 < bridge> The last two errors I encounter for building the emscripten so far 17:58 < bridge> 17:58 < bridge> The `bash /code/scripts/compile_libs/gen_libs.sh /tmp/build-libs webasm` 17:58 < bridge> 17:58 < bridge> generates the following errors 17:58 < bridge> 17:58 < bridge> ``` 17:58 < bridge> 74.42 Cloning into 'zlib'... 17:58 < bridge> 75.83 find: '/root/Android/Sdk/ndk': No such file or directory 17:58 < bridge> 75.87 emcmake: cmake -H. -DCMAKE_BUILD_TYPE=Release -Bbuild_webasm_wasm -DSDL_STATIC=TRUE -DFT_DISABLE_HARFBUZZ=ON -DFT_DISABLE_BZIP2=ON -DFT_DISABLE_BROTLI=ON -DFT_REQUIRE_ZLIB=TRUE '-DCMAKE_C_FLAGS=-pthread -O3 -g -s USE_PTHREADS=1 -DGLEW_STATIC' '-DCMAKE_CXX_FLAGS=-pthread -O3 -g -s ... 17:58 < bridge> 79.78 -- Performing Test HAVE___ATTR__VIS_HIDDEN 17:58 < bridge> 80.32 -- Performing Test HAVE___ATTR__VIS_HIDDEN - Success 17:59 < bridge> 80.32 CMake Error at CMakeLists.txt:163 (add_library): 17:59 < bridge> 80.32 ADD_LIBRARY called with SHARED option but the target platform does not 17:59 < bridge> 80.32 support dynamic linking. 17:59 < bridge> 80.32 17:59 < bridge> 80.32 17:59 < bridge> 80.32 -- Configuring incomplete, errors occurred! 17:59 < bridge> 80.33 gmake: Makefile: No such file or directory 17:59 < bridge> 80.33 gmake: *** No rule to make target 'Makefile'. Stop. 17:59 < bridge> ``` 17:59 < bridge> 17:59 < bridge> ``` 17:59 < bridge> 187.3 gmake[2]: *** No rule to make target '/tmp/build-libs/compile_libs/curl/../zlib/build_webasm_wasm/libz.a', needed by 'src/curl.js'. Stop. 17:59 < bridge> 187.3 gmake[2]: *** Waiting for unfinished jobs.... 17:59 < bridge> 187.3 [ 92%] Building C object src/CMakeFiles/curl.dir/__/lib/version_win32.c.o 17:59 < bridge> 187.3 [ 92%] Building C object src/CMakeFiles/curl.dir/__/lib/warnless.c.o 17:59 < bridge> 187.4 gmake[1]: *** [CMakeFiles/Makefile2:843: src/CMakeFiles/curl.dir/all] Error 2 17:59 < bridge> 187.4 gmake: *** [Makefile:136: all] Error 2 17:59 < bridge> ``` 17:59 < bridge> 17:59 < bridge> The last two errors I encounter for building with emscripten so far 17:59 < bridge> 17:59 < bridge> The `bash /code/scripts/compile_libs/gen_libs.sh /tmp/build-libs webasm` 17:59 < bridge> 17:59 < bridge> generates the following errors 17:59 < bridge> 17:59 < bridge> ``` 17:59 < bridge> 74.42 Cloning into 'zlib'... 17:59 < bridge> 75.83 find: '/root/Android/Sdk/ndk': No such file or directory 17:59 < bridge> 75.87 emcmake: cmake -H. -DCMAKE_BUILD_TYPE=Release -Bbuild_webasm_wasm -DSDL_STATIC=TRUE -DFT_DISABLE_HARFBUZZ=ON -DFT_DISABLE_BZIP2=ON -DFT_DISABLE_BROTLI=ON -DFT_REQUIRE_ZLIB=TRUE '-DCMAKE_C_FLAGS=-pthread -O3 -g -s USE_PTHREADS=1 -DGLEW_STATIC' '-DCMAKE_CXX_FLAGS=-pthread -O3 -g -s ... 18:00 < bridge> 79.78 -- Performing Test HAVE___ATTR__VIS_HIDDEN 18:00 < bridge> 80.32 -- Performing Test HAVE___ATTR__VIS_HIDDEN - Success 18:00 < bridge> 80.32 CMake Error at CMakeLists.txt:163 (add_library): 18:00 < bridge> 80.32 ADD_LIBRARY called with SHARED option but the target platform does not 18:00 < bridge> 80.32 support dynamic linking. 18:00 < bridge> 80.32 18:03 < bridge> sounds fun 18:03 < bridge> Any guess? 18:03 < bridge> Do I miss dependencies somewhere? 18:04 < bridge> .a is a lib file, I think you need to build them yourself :justatest: 18:04 < bridge> I do 18:04 < bridge> that's what he's doing no? 18:04 < bridge> If you need to compile the ddnet-libs for WebAssembly, simply call 18:04 < bridge> 18:04 < bridge> # should be a directory outside of the project's source directory 18:04 < bridge> scripts/compile_libs/gen_libs.sh "" webasm 18:04 < bridge> 18:04 < bridge> from the project's source directory. It will automatically create a directory called ddnet-libs in your build directory. You can then manually merge this directory with the one in the ddnet source directory. 18:05 < bridge> If you need to compile the ddnet-libs for WebAssembly, simply call 18:05 < bridge> 18:05 < bridge> ``` 18:05 < bridge> # should be a directory outside of the project's source directory 18:05 < bridge> scripts/compile_libs/gen_libs.sh "" webasm 18:05 < bridge> ``` 18:05 < bridge> 18:05 < bridge> from the project's source directory. It will automatically create a directory called ddnet-libs in your build directory. You can then manually merge this directory with the one in the ddnet source directory. 18:05 < bridge> maybe first fix the errors that you can clearly see? 18:05 < bridge> > find: '/root/Android/Sdk/ndk': No such file or directory 18:05 < bridge> its for android, not needed no? 18:05 < bridge> > ADD_LIBRARY called with SHARED option but the target platform does not 80.32 support dynamic linking. 18:05 < bridge> i build wasm 18:05 < bridge> not android 18:07 < bridge> also i definitely some demo viewer online that did did this. @essigautomat do you know who did that? it was a full client. no udp ofc 18:07 < bridge> also i definitely some demo viewer online that did this. @essigautomat do you know who did that? it was a full client. no udp ofc 18:07 < bridge> also i definitely saw some demo viewer online that did this. @essigautomat do you know who did that? it was a full client. no udp ofc 18:07 < bridge> Jupstar, no? 18:07 < bridge> according to the wiki atleast 18:08 < bridge> hmm i guess, i don't know. you could message him 18:08 < bridge> https://wiki.ddnet.org/wiki/Resources 18:09 < bridge> yea that's the one 18:09 < bridge> ask jupstar how he managed to do it i guess 18:10 < bridge> He's not on the discord anymore 🙁 18:10 < bridge> :pepeW: 18:11 < bridge> yea he left some time ago, you don't have any shared servers with him anymore? 18:11 < bridge> Ah, maybe the ddnet-rs server 18:11 < bridge> his username is `jupeyy_keks` 18:44 < bridge> The old version of the map and demo viewer is hosted at https://ddnet.github.io/load_map.html, it has additional changes to load demo/map files in the web browser and to provide a "kiosk" demo/map viewer without the menus (see https://github.com/Jupeyy/ddnet/tree/web_preview). I never got around to cleanly porting those changes to the ddnet repository. 18:53 < bridge> I am focusing now on building the actual source 18:54 < bridge> It seems that there are some changes, but they should not affect my current approach 19:06 < bridge> Building and running the Emscripten client should work. Connecting to local websocket servers also works. But I'm not entirely sure if the script for building the libraries works correctly for Emscripten, because I've been slowly reworking it but haven't finalized it yet, so I never used the original one. It should work with these changes https://github.com/Robyt3/ddnet/tree/Android-Libraries-Update-BoringSSL though this also switches OpenSSL for Bor 19:06 < bridge> 19:06 < bridge> You might be able to hotfix your existing build by switching the branch in the zlib repository to `develop` or the `v1.3.1.2` tag. I think there was one problem that the master branch on zlib is not being updated and does not support the cmake option `-DZLIB_BUILD_SHARED=OFF`. 19:19 < bridge> Does it need the Android stuff as well to build successfully? 19:20 < bridge> It shouldn't, but I guess it might fail in the new scripts because I added `set -e` and didn't test without having the Android SDK installed 19:20 < bridge> You could probably create some empty folders if it stops the build otherwise. 19:23 < bridge> I see, thanks for the input 19:24 < bridge> Would be cool to get this fixed in master too, so we dont need to do hotfixes & can just built the wasm thing on every release automatically 19:27 < bridge> Yeah, I'll try to finish it soonish. The scope of this change kept increasing. I think I initially wanted to build ffmpeg for Android, but then I had to refactoring the library script and went down the rabbit hole of testing and fixing Emscripten too. Still need to think about whether BoringSSL is better than just embedding the certificate store: https://github.com/ddnet/ddnet/issues/11347 19:30 < bridge> Ah, well refactoring things always results in a near full rewrite 😄 19:40 < bridge> https://cdn.discordapp.com/attachments/1082014285187776653/1448745299961970823/IMG_5472.jpg?ex=693c60b3&is=693b0f33&hm=80f473a81807d10475c226eca8e8f7e5796ae409b8a205c3ee2098f458646f58&&_t=19b0eb6cd5a&_r=78xnoq https://cdn.discordapp.com/attachments/1082014285187776653/1448745300368949268/IMG_5473.jpg?ex=693c60b3&is=693b0f33&hm=2620c9285d66a2da5be2655928c1111f666b29b536bbb5242621d90ebab94a4b&&_t=19b0eb6cd5a&_r=7vxp9f https://cdn.discordapp.com/attachme 19:40 < bridge> @Discord Mod ^ 19:41 < bridge> getting banned on discord speedrun 19:43 < bridge> i was just watching this video and now i wonder if it is possible to make a regex engine entirely in macros that expand to regular c code 19:43 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1448746979239919677/image0.png?ex=693c6244&is=693b10c4&hm=83a15228a6a50ca0a0c1f2c59e36f568d4cf92f9b4ce4353f6dd20cec36ced2c& 19:43 < bridge> Tsoding hahaha goat 19:43 < bridge> He is fun 19:43 < bridge> Also Rene Rebe 19:47 < bridge> I doubt it's possible to keep it regular regex syntax. But you can probably do it with a different syntax. All regexes are NFAs, and going from a regex to an NFA is a finite procedure 19:47 < bridge> top5 horrible project ideas 19:48 < bridge> Like `[0-9]{3}` -> `REP(3, IN_CLASS(CHAR_RANGE('0 19:49 < bridge> Like `[0-9]{3}` -> `REP(3, IN_CLASS(CHAR_RANGE('0', '9'))` 19:49 < bridge> Like `[0-9]{3}` -> `REP(3, IN_CLASS(CHAR_RANGE('0', '9')))` 19:49 < bridge> I wonder if you can break down a regex to a touring machine 19:49 < bridge> I wonder if you can break down a regex to a turing machine 19:49 < bridge> probably yes, so it probably is possible 19:50 < bridge> Surely, all regexes are NFAs, all finite automata can be emulated by a turing machine 19:52 < bridge> Don't even need a turing machine really actually, a pushdown automata is also capable of doing any regex 19:52 < bridge> https://github.com/hanickadot/compile-time-regular-expressions 19:52 < bridge> something similar 19:53 < bridge> Yeah, templates are definitely strong enough to generate this, cool project 19:53 < bridge> I always look for something like that in Rust then I don't find it 19:54 < bridge> https://re2c.org 19:54 < bridge> ok it already exists, day is ruined 19:59 < bridge> But that's not what you wanted, you wanted one that does what re2c does in c macros 😄 20:03 < bridge> i guess re2c is an external program, but it still basically does what i wanted: generate c code that matches the logic of a regex at compile time. with macros it would be more fun and more horrible but... 20:13 < bridge> Fwiw pretty much any parser generator can generate one for a regex. Regular Expressions are fairly weak 20:16 < bridge> Sooo, you can do something absolutely nasty, like parsing regexes with a bison generated parser, then using that parse regexes and emit bison files, then run that through bison to generate a regex dfa 😄 20:17 < bridge> Actually I guess Bison would generate a dpda not a dfa