00:20 < bridge> <01000111g> I mean, there are other controversial flags aswell. For instance Palestinian flag, which is not a true country according to UN. Or EU flag, which also isnt a country. Or a flag that looks like Reichskriegsflagge, but is also a flag of a true country. 00:23 < bridge> most are from the 3166-1 standard 00:23 < bridge> except eu and few british ones 00:24 < bridge> most are from the iso 3166-1 standard 00:25 < bridge> <01000111g> Yeah, I mean idc that much, we can keep it as solely these countries, bit I think more flags arent bad either. I'd like a pirate flag and some others aswell. 01:00 < bridge> o my shit i would love a pirate flag 01:01 < bridge> idk why i feel so strongly abt that 01:01 < bridge> this is a veyr slippery slope 01:02 < bridge> the finnish flag 🏁 01:02 < bridge> i want that one too 01:02 < bridge> /: 01:02 < bridge> how about add all the flags in unicode 01:03 < bridge> then we defer the choice to unicode and get more flags 01:03 < bridge> 🇨🇭The medkit flag 01:04 < bridge> das switzerland 01:06 < bridge> british flag not in a standard for flags? 01:06 < bridge> damn someone had a vendetta 01:06 < bridge> oh u mean enlgnad scotland and wales 01:07 < bridge> why does it use the numeric codes tho 01:10 < bridge> thats interstying th uk is reserved by .. the uk 01:10 < bridge> even tho they have gb 01:17 < bridge> yes the ones with `-` 01:23 < bridge> idk but when i have a controller plugged in and use steam controller input my mouse input deltas are mapped to relative movements from the center as if it was receiving joystick inputs lol 01:27 < bridge> so true 01:28 < bridge> even in the worst case scenario 01:28 < bridge> that sentance doesnt make... much sense 01:28 < bridge> im not sure what youre agreeing with 01:30 < bridge> wdym in the worse case?? 01:30 < bridge> i agree with the sentiment behind it 01:30 < bridge> whats the sentiment? 01:31 < bridge> that i find it more agreeable when people are vocal about their culture than their sexual orientation 01:31 < bridge> imo even the most obnoxious nationalist is not as bad as the most obnoxious person who is proud of their sexual orientation or gender 01:32 < bridge> that i find it more agreeable when people are vocal about their culture than their sexual orientation and or gender 01:32 < bridge> this sentance makes sense 01:32 < bridge> i mean... i dont like either 01:32 < bridge> idk which i would prefer 01:33 < bridge> but having a flag of either isnt any of.. either 01:33 < bridge> this depends on how the organization is configured, often times org members still won't have unregulated push access. only collaborators 01:33 < bridge> but having a flag of either isnt obnoxious in any degree 01:33 < bridge> but i don't know how ddnet set it up 01:33 < bridge> it shows on the people tab on the right 01:34 < bridge> but having a flag of either isnt obnoxious in any degree or being voal 01:34 < bridge> right, that shows organization members, not necessarily people with push access (i.e. to merge your pull request) 01:34 < bridge> but having a flag of either isnt obnoxious in any degree or being vocal since its a flag no one really looks at either 01:35 < bridge> is that what you're asking 01:35 < bridge> wat wuld be the purpose of having members 01:35 < bridge> who cant write 01:35 < bridge> since its open source 01:35 < bridge> there are some very large orgs 01:36 < bridge> it makes sense to permit read access to an organization if the repos are private 01:36 < bridge> it doesnt if the repos are public 01:36 < bridge> epic games has you join theirs to even develop with unreal engine, that shouldnt mean you have unregulated push access to every repo in the org 01:36 < bridge> also theres 12 01:36 < bridge> at my work im in the whole umbrella org but i only have push access to things im a collaborator on and things on my team 01:36 < bridge> thats cuz its otherwise private, also extremley weird 01:37 < bridge> they may want to enable push access to e.g. wiki contributors & people who contribute graphics to certain repos and not others 01:38 < bridge> o true 01:38 < bridge> they may want to enable push access for e.g. wiki contributors & people who contribute graphics to certain repos and not others 01:38 < bridge> this is a trust me bro moment 01:38 < bridge> x-x 02:16 < bridge> @0xdeen empty [] line 37 02:16 < bridge> the same 02:40 < ws-client> @woidless 1. which camera? 2. I don't speak russian so I need your help 3. I think this is already done? Did you test it? 02:49 < bridge> 2. Use Deepl, it translates normally, but in no case Google translator 02:50 < bridge> 1. Когда мы не в невидимости когда мы идем экран следует за персонажем 02:50 < bridge> 1. When we are not in invisibility, when we walk the screen follows the character, it does not let the character leave the screen 02:51 < bridge> And when invisibility is enabled on me, the screen does not follow the character 02:53 < bridge> 2. For an accurate comparison, you can log in to TeeSports and write different commands 04:07 < bridge> I was SO confused because the Finnish flag is already in the game 04:07 < bridge> took me a solid 20 seconds to realize that you're talking about the finish flag 04:08 < bridge> You know that's not a proper definition for the term. By your logic "racial minority" would be describing a minority of people are racial, which, just, doesn't make sense? 04:08 < bridge> You know that's not a proper definition for the term. By your logic "racial minority" would be describing a minority of people who are racial, which, just, doesn't make sense? 04:11 < bridge> If you think the term is politically incorrect just tell me, don't pretend it doesn't mean what it means 04:17 < ws-client> @woidless fixed 1. 04:18 < ws-client> about translations i dont want to use deepl but rather have a native proof read it. And TS changed a few things also their language is quite offensive. 04:19 < ws-client> let me know which messages you need to have replaced with what 04:22 < bridge> Let's give everything that can be used by people 04:22 < bridge> Tell me the text in English, I'll translate it 04:51 < ws-client> no u find the messages you need translation for :p 05:24 < bridge> What? 05:34 < ws-client> @woidless i am not going to just translate everything send me the text that you want translated 06:09 < bridge> why is the kog tab gone 06:13 < bridge> their code not opensource i think 06:14 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1303225899889594399/Screenshot_2024-11-05-10-13-31-406_org.ddnet.client.png?ex=672afb33&is=6729a9b3&hm=e4cce105366071e8f9ac42e99f076fce99e71218b9d3bfaef86ed1cc08fc9548& 06:14 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1303225900128534558/Screenshot_2024-11-05-10-10-10-899_org.ddnet.client.png?ex=672afb33&is=6729a9b3&hm=9581c4a53696eff0f1343a57c7cdeb8c37eb7f9bbe31e418c39cfbcf8e52e0b1& 06:14 < bridge> Also /pay , tournament block 06:14 < bridge> oh that went through 06:14 < bridge> nice 06:15 < bridge> And also how to return to tab not the passage time , but the level of people 06:16 < bridge> And also translate the block of the stream 06:16 < bridge> Well, like when a person has 5 block of murders, he wrote in the fx chat, He scored 5 block of murders 06:16 < bridge> And if it was taken away from him, you also need to translate it 06:16 < bridge> And also I want the mechanics of flags 06:54 < bridge> M 07:26 < bridge> any idea why kog community tab doesnt show up? 07:26 < bridge> all servers seem to be in none category 07:27 < ws-client> @woidless ok now send it as text in english and russian ideally here and not on discord https://github.com/DDNetPP/DDNetPP/issues 07:27 < ws-client> the flags broke in a merge i didnt find time yet to fix them 07:32 < bridge> Can I come here? 07:33 < bridge> chuller drago 07:33 < bridge> https://tenor.com/view/good-luck-lucky-best-of-luck-encouragement-gambling-gif-64444595157542496 07:47 < bridge> *** [Аккаунт] Пожалуйста, используйте /register <имя> <пароль> <пароль. 07:47 < bridge> *** Используйте /login <имя> <пароль>'. *** Для получения справки используйте Waccountinfo'. 07:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1303249435211468841/Screenshot_2024-11-05-10-10-10-899_org.ddnet.client.png?ex=672b111e&is=6729bf9e&hm=280e3a7d3be48e99c50e4d01a4497eb70e2097c9f0e853cc60bc554a15e0edbe& 07:48 < bridge> [Аккаунт] Пожалуйста, используйте /register <имя> <пароль> <пароль. 07:48 < bridge> 07:48 < bridge> 07:48 < bridge> 07:48 < bridge> 07:48 < bridge> Используйте /login <имя> <пароль>'. Для получения справки используйте /accountinfo 07:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1303249435211468841/Screenshot_2024-11-05-10-10-10-899_org.ddnet.client.png?ex=672b111e&is=6729bf9e&hm=280e3a7d3be48e99c50e4d01a4497eb70e2097c9f0e853cc60bc554a15e0edbe& 07:52 < ws-client> stap with the images send it as text please 07:55 < bridge> I just show that I have translated 07:55 < bridge> [Аккаунт] Пожалуйста, используйте /register <имя> <пароль> <пароль. 07:55 < bridge> 07:55 < bridge> 07:55 < bridge> 07:55 < bridge> 07:55 < bridge> Используйте /login <имя> <пароль>'. Для получения справки используйте /accountinfo 07:55 < bridge> 07:55 < bridge> 07:55 < bridge> 07:55 < bridge> 07:55 < bridge> For the registration and login system 07:57 < bridge> GM humans and others 07:57 < bridge> gm humans and others 07:58 < bridge> gm Teeros and humans 07:58 < bridge> опять пидорас какой то свою залупу на хост ставит 07:58 < bridge> иди нахуй отсюда 07:59 < bridge> $english 07:59 < bridge> Hi! Most of us communicate in English. If you’re having trouble with English, use to help you out. 07:59 < bridge> a lot of cursing, I can say 07:59 < bridge> Morning null pointer dereference enjoyers and others 08:00 < bridge> blya ya kak spidometr ja sobirayu mili 08:01 < bridge> nashi spini ih nesut davno we are need backpack🔥 08:01 < bridge> nashi spini ih nesut davno we are need a backpack🔥 08:34 < bridge> For /stats 08:34 < bridge> ---Nick статистика--- 08:34 < bridge> Уровень [Account level] 08:34 < bridge> Экспи(The amount of XP the account has) (не выполнен вход ,but the input can be executed then it is no longer necessary) 08:34 < bridge> Деньги (The amount of money in the account) 08:34 < bridge> Билеты на ПВП Арену (The number of tickets in the account) 08:34 < bridge> ---БЛОК--- 08:34 < bridge> Поинтов The number of points in the account) 08:34 < bridge> Убийств:The number of murders 08:34 < bridge> Смертей:Number of deaths 08:39 < bridge> You can drop all the texts related to the block tournament and the streak 08:39 < bridge> You can drop all the texts related to the block tournament and the block strike 08:43 < bridge> translate your text, dude 08:55 < ws-client> @woidless make an account on github and comment here to avoid spamming this channel https://github.com/DDNetPP/DDNetPP/issues/374 09:20 < bridge> This is translate of ddnetpp texts xd 09:21 < bridge> You can check original text in git repo, lel 09:21 < bridge> I 've translated everything , let me also translate everything 10:14 < ws-client> @woidless adding translations is quite annoying for the next ones you have to be more proactive 10:28 < bridge> I can do it, I'm free anyway. 11:50 < bridge> I moved chn map mirror syncing script to github actions https://github.com/TeeworldsCN/mirror-sync 11:52 < bridge> which admin is handling the map uploading pipeline? care to add a api call to github to trigger the workflow as well? 12:03 < bridge> @snailx3 handles map releases etc IIRC :owo: 12:04 < bridge> that's exactly what i'm worried about. i don't know that mysterious guy :justatest: 12:05 < bridge> :kek: 12:05 < bridge> the old script broke like almost a year ago 12:05 < bridge> no one complained about slow map download speed for some reason 12:05 < bridge> People thinking 2kb/s is normal :greenthing: 12:05 < bridge> probably bcs most people on chn are still playing kobra anyway 12:05 < bridge> :kekw: 12:21 < bridge> yeah, but maybe deserved 12:21 < bridge> :troll: 13:18 < bridge> hey 13:18 < bridge> ./r is broken with ninja 13:19 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1303332971239051306/2024-11-05_13-17-49.mp4?ex=672b5eeb&is=672a0d6b&hm=cc096dcdbf73ce91ced0802a28be968142e74a17e669b5419d44d515394ad2b3& 14:23 < bridge> @learath2 14:23 < bridge> @learath2 14:24 < bridge> well im just using a web interface, so i wont be able to help u th ere 14:25 < bridge> Hm, like a webhook or sth? 14:25 < bridge> Idk how this part works 14:38 < bridge> I'm doing a kernel module which would do something when a player connects a dummy, I tried crashing the kernel but it's not that fun. Maybe it would be possible to reverse dummy's inputs. Do you have other ideas? xd 14:42 < bridge> ```C 14:42 < bridge> #define aSet c 14:42 < bridge> #define BufferedReader(x)1 14:42 < bridge> #define byte Y[I][_^1]?do(:):_&1?do(.):do(`):8;++y;} 14:42 < bridge> #define class int N=0,_,O=328,l=192,y=4,Y[80][64]={0},I;struct 14:42 < bridge> #define do(c)a(#c "\b") 14:42 < bridge> #define err c,c 14:42 < bridge> #define getAllStrings(x));q() 14:42 < bridge> #define if(x)b(#x) 14:42 < bridge> #define IOException 14:42 < bridge> #define line c 14:42 < bridge> #define main(a)b(char*x){write(1,"\033[",2),null}main() 14:42 < bridge> #define new 14:42 < bridge> #define null a(x);}a(char*x){write(1,x,strlen(x));try;try;try;try; 14:42 < bridge> #define out c,c 14:42 < bridge> #define println(x)c 14:42 < bridge> #define private int d(int 14:42 < bridge> #define public short c;}c;typedef int BufferedReader;char*F="JF>:>FB;;BII"; 14:42 < bridge> #define return {return 14:42 < bridge> #define static f(x){N=(N+x)%6,y--?f(0),f(1),f(4),f(1):++Y[(I=O+N[F]-66) 14:42 < bridge> #define String 14:43 < bridge> #define System c 14:43 < bridge> #define this if(D):1,O=I,I/=16,l<_/32?if(B):l>_/32?if(A):2,l=_,_/=16,byte 14:43 < bridge> #define throws 14:43 < bridge> #define toArray(x)c 14:43 < bridge> #define try for(;--c.c;) 14:43 < bridge> #define void /16][(_=l+N[6+F]-66)/16]?O/=16,l/=32,OI/16?this 14:43 < bridge> #define while(k)if(2J),if(7;21H),f(0),f(4),f(4),if(H),/* 14:43 < bridge> 14:43 < bridge> import java.io.*; 14:43 < bridge> import java.util.*; 14:43 < bridge> @learath2 beautiful C code 15:09 < bridge> wtf is that madness 16:34 < bridge> This is actual insanity, wtf 16:44 < bridge> https://github.com/agda/agda 16:44 < bridge> ```agda 16:44 < bridge> record Ord (A : Set) : Set₁ where 16:44 < bridge> field 16:44 < bridge> _≤_ : A → A → Set 16:44 < bridge> ≤-refl : x ≤ x 16:45 < bridge> ≤-trans : x ≤ y → y ≤ z → x ≤ z 16:45 < bridge> ≤-antisym : x ≤ y → y ≤ x → x ≡ y 16:45 < bridge> 16:45 < bridge> _≥_ : A → A → Set 16:45 < bridge> x ≥ y = y ≤ x 16:45 < bridge> ``` 17:37 < bridge> agda is cool 18:21 < bridge> @jupeyy_keks iirc u told me to try with a monitor. now i have +2000 fps c: 18:47 < bridge> a dummy ... to ddnet? how would you detect that. does it have to be a keranl module 18:47 < bridge> you "tried" to crash the kernal? its... not very hard to do so.. and also not very fun making kernal modules or when they crash 18:47 < bridge> wdym reverse dummys inputs? implement a cl_dummy_mirror or something like that (if it isnt already) if u need that 18:47 < bridge> what r u trying ot do anyway 18:48 < bridge> https://tenor.com/view/yes-i-have-an-idea-wait-up-ill-look-at-it-closely-i-know-that-gif-17827266 18:49 < bridge> i see 18:54 < bridge> ||Ngl, this idea was cause a friend is currently working on a map where the freezes would look way better with the "Overlay" blend mode|| 19:13 < bridge> How to make DDNetPP so that the tab shows the level instead of the finish time. 19:13 < bridge> the tab as in pressing tab? 19:14 < bridge> or tab as in the window that shows up when you press tab 19:19 < bridge> Pressing tab 19:19 < bridge> Where else is Nick, ping 19:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1303423646974476348/image.png?ex=672bb35d&is=672a61dd&hm=efa774c7fad4d3d3753f66d514eb81c7c3154c727113c512230eadd2482ab33f& 19:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1303423682923986965/image.png?ex=672bb366&is=672a61e6&hm=2a45842ab9664049630ef411fe65c4af178ac4e0ed6a292dc6798d8160673124& 19:20 < bridge> does ddnetpp not have the level name in the top left? 20:00 < bridge> what does checksum do? is it something for hotrealoding? 20:03 < bridge> why is there a wordlist? 20:03 < bridge> ```c 20:03 < bridge> "yahoo", 20:03 < bridge> "yam", 20:03 < bridge> "yard", 20:03 < bridge> "year", 20:03 < bridge> "yeast", 20:03 < bridge> "yelp", 20:03 < bridge> "yield", 20:03 < bridge> "yo-yo", 20:03 < bridge> "yodel", 20:03 < bridge> "yoga", 20:03 < bridge> "yoyo", 20:03 < bridge> "yummy", 20:03 < bridge> ``` 20:04 < bridge> /save /load codes 20:04 < bridge> ah 20:05 < bridge> why is it generated 20:05 < bridge> oh as a fallback 20:05 < bridge> im just looking at all the random things its fun xd 20:18 < bridge> by removing all the random rust nonsense which idk what it even does removes a mb of the executable xD 20:20 < bridge> https://research.google/blog/scalable-self-improvement-for-compiler-optimization/ 20:21 < bridge> inling would increase executable size 20:21 < bridge> but interesting 20:21 < bridge> wait inlining for size? how 20:22 < bridge> also ai to do compiling is defaintley a no go 20:22 < bridge> for compile times 20:23 < bridge> for server to identify you 20:23 < bridge> @sollybunny search SSA form 20:24 < bridge> inlining is the basis for lot of optimizations since it allows better optimization in each place 20:24 < bridge> dont think its just 1 pass inlining, its inlining and then more passes 20:25 < bridge> @sollybunny imagine you have a main function and a hello function, the hello is simply a x * y, and main has a call to hello with 2 values, the compiler is smart to inline such a function in main 20:25 < bridge> and it can completly remove the hello function 20:25 < bridge> thus decreasing code size 20:25 < bridge> a function call has some small overhead 20:25 < bridge> by a single symbol. i get function inlining 20:26 < bridge> i thought that was realtivly... solved and not worth worying about 20:26 < bridge> it is i think 20:26 < bridge> llvm is rly good at it 20:26 < bridge> rust relies heavily on it 20:26 < bridge> but theres inlining other than that? 20:27 < bridge> what u mean 20:27 < bridge> @everyone discord.gg/B9yGaMcy8p EJNrdGvnCk 20:27 < bridge> @Discord Mod 20:28 < bridge> as I read it ssa form is turning human readable code into a more machine readable code so optimization is easier as you have to handle less cases 20:28 < bridge> 20:28 < bridge> a = 5 + b 20:28 < bridge> a *= 3 20:28 < bridge> -> 20:28 < bridge> a = 5 20:28 < bridge> a1 = a + b 20:28 < bridge> a2 = a1 * 3 20:28 < bridge> as I read it ssa form is turning human readable code into a more machine readable code so optimization is easier as you have to handle less cases 20:28 < bridge> 20:28 < bridge> ``` 20:28 < bridge> a = 5 + b 20:28 < bridge> a *= 3 20:28 < bridge> -> 20:28 < bridge> a = 5 20:28 < bridge> a1 = a + b 20:28 < bridge> a2 = a1 * 3 20:28 < bridge> ``` 20:28 < bridge> also "static" how does it achieve that 20:29 < bridge> theres way too much dynamic stuff for **everything** to be static 20:29 < bridge> > ssa form is turning human readable code into a more machine readable code 20:29 < bridge> no 20:29 < bridge> ssa form means a variable is only assigned once 20:29 < bridge> specially when pointes get involved 20:29 < bridge> well what u did there is correct 20:29 < bridge> but ur wording is weird 20:29 < bridge> wdym 20:29 < bridge> pointers* 20:29 < bridge> pointers arent rly dynamic 20:29 < bridge> or wait maybe you can 20:29 < bridge> they are a variable that points to a place in memory 20:30 < bridge> \* thinking way too mcuh about this \* 20:30 < bridge> https://llvm.org/docs/LangRef.html#getelementptr-instruction 20:30 < bridge> oh okay sure 20:30 < bridge> this is how llvm deals with pointers 20:30 < bridge> and load/store 20:30 < bridge> but what does this have to do with inlining 20:30 < bridge> idk but u said pointers out of nowhere xd 20:30 < bridge> but they do have relation 20:30 < bridge> no sorry i tripped myself up 20:30 < bridge> ignore that 20:30 < bridge> for example if u know a pointer is not aliased u may do some stuff 20:31 < bridge> yeah 20:31 < bridge> chillerdragon: do you have a lib for parsing tw packets in C? :DD 20:31 < bridge> i was like surely with all the pointer shenangins you can do. having everything static must make something break 20:31 < bridge> but i cant think of a case 20:31 < bridge> because its fine if everything is static 20:32 < bridge> but waht does ssa have to do with inlining 20:32 < bridge> and why is there a paper on it? 20:32 < bridge> because SSA allows making the inline pass easier 20:32 < bridge> ssa makes analysis way way easier 20:32 < bridge> inling a function at best saves a single symbol. and at worse increases binary size by lots 20:32 < bridge> since it makes analyzing where a variable is used 20:32 < bridge> no 20:33 < bridge> inlining at best allows a shitload more optimizations to be done 20:33 < bridge> we arent talking about functions 20:33 < bridge> in some contexts if u have a place where inlining for example allows avoiding some expensive div or smth 20:33 < bridge> or a branch 20:33 < bridge> it can save a lot 20:33 < bridge> inlining is about functions 20:33 < bridge> idk what u talking about 20:34 < bridge> > LLVM basis is the LLVM IR, a Static single-assignment form (SSA) language, that looks like pseudo assembly. The main property of SSA is that each variable is assigned exactly once and defined before it is used. 20:34 < bridge> > 20:34 < bridge> > It is what LLVM works on to apply all the optimization passes, it being SSA is one of the major enablers of the optimizations it can do (and what makes it easier to implement them), to name a few (from wikipedia): 20:34 < bridge> > 20:34 < bridge> > Constant propagation: conversion of computations from runtime to compile time, e.g. treat the instruction a=3*4+5; as if it were a=17; 20:34 < bridge> > Value range propagation: precompute the potential ranges a calculation could be, allowing for the creation of branch predictions in advance. 20:35 < bridge> > Sparse conditional constant propagation: range-check some values, allowing tests to predict the most likely branch. 20:35 < bridge> > Dead-code elimination: remove code that will have no effect on the results. 20:35 < bridge> > Global value numbering: replace duplicate calculations producing the same result. 20:35 < bridge> > Partial-redundancy elimination: removing duplicate calculations previously performed in some branches of the program. 20:35 < bridge> > Strength reduction: replacing expensive operations by less expensive but equivalent ones, e.g. replace integer multiply or divide by powers of 2 with the potentially less expensive shift left (for multiply) or shift right (for divide). 20:35 < bridge> > Register allocation: optimize how the limited number of machine registers may be used for calculations. 20:35 < bridge> https://edgl.dev/blog/mlir-with-rust/ 20:35 < bridge> ^ this isnt about inlining 20:36 < bridge> but its what inlining can allow 20:37 < bridge> does it try to inline a function see if it can do any of these 20:37 < bridge> then decide whether to do it 20:38 < bridge> it could 20:39 < bridge> but im still not sure how it reduces size apart from dead code elimination 20:40 < bridge> unless alot of dead code is generated by cpp or rust and in only detetctable thru inlining functions 20:40 < bridge> unless alot of dead code is generated by cpp or rust and only detetctable thru inlining functions 20:41 < bridge> i surrendeer 20:41 < bridge> ): 20:41 < bridge> dont 20:42 < bridge> https://storage.googleapis.com/gweb-research2023-media/media/IL-Compiler-Optimization-compiler-decisions.mp4 20:44 < bridge> assuming all these functions are heavy its very obvious where to inline here 20:44 < bridge> where only 1 function calls it 20:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1303445002407383070/image.png?ex=672bc741&is=672a75c1&hm=40ae295d01106ba056fcddc4c3c4274e73468814a82597dba7563320c6e0d390& 20:45 < bridge> if this was inlined im not suer what happens here 20:45 < bridge> in the case that its dead code anyway it can be removed 20:46 < bridge> but if it is dead code only with the state of the caller then inling hsould be done 20:46 < bridge> done as in inlined and then subsequently removed 20:46 < bridge> or partially removed 20:46 < bridge> https://tenor.com/view/nokotan-shikanoko-nokonoko-koshitantan-kenshiro-gif-6611478418379268599 20:46 < bridge> sure i can see how that would now be a hard problem to solve 20:47 < bridge> other than just trying it based on some heuristic 20:47 < bridge> but i dont see how ai helps 20:47 < bridge> yeah idk either 20:47 < bridge> the inputs arent really clear 20:47 < bridge> its google marketing 20:47 < bridge> whats # bbs, # users and callsite "height" 20:47 < bridge> tbh all i was saying was based on llvm 20:47 < bridge> not ai google xd 20:47 < bridge> the caller graph helped alot xd 20:48 < bridge> bbs are basic blocks, which are well blocks with 1 entrance and 1 exit point 20:48 < bridge> but there might be 10s of those 20:48 < bridge> and passing it into a relativly small ai wont do much 20:49 < bridge> but ai is magic so idk 20:49 < bridge> users is the callers 20:49 < bridge> callsite height is the depth of the call in the state 20:50 < bridge> callsite height is the depth of the call in the current state of the caller 20:50 < bridge> so its recursive 20:50 < bridge> or rathger like a dfs or something 20:51 < bridge> why? 20:52 < bridge> isnt that wat a timeout code, name, clan, flag and skin are for? 20:52 < bridge> and version 21:11 < bridge> Not always, if you inline early, subsequent optimizations that can now see through the call instruction can lead to a decrease in code size 21:13 < bridge> why is sqlite used just for server browser ping cache 21:13 < bridge> it's not ? 21:13 < bridge> Because it is well suited to storing data and querying said data 21:14 < bridge> ``` 21:14 < bridge> grep "sqlite.h" -r . 21:14 < bridge> ./engine/client/sqlite.cpp:#include 21:14 < bridge> ./engine/client/serverbrowser_ping_cache.cpp:#include 21:14 < bridge> ``` 21:14 < bridge> In the client it's only for sqlite 21:14 < bridge> In the client it's only for serverbrowser 21:14 < bridge> i thought it was only server side for storing ranks 21:14 < bridge> On server-side it's a replacement for mysql 21:14 < bridge> how does ddnet store that stuff since its centralized and all? 21:14 < bridge> honestly we coud just use a std::map, no ? 21:15 < bridge> Then the serialization and deserialization is not a solved issue 21:15 < bridge> i would think if its centralized it would go to a sql server instead of being one 21:16 < bridge> Ranks? We use mysql. Sqlite is there as fallback 21:16 < bridge> well ranks and all map completions for everyone 21:16 < bridge> who is we? 21:17 < bridge> Yes those all go to a central mysql server that is replicated 21:17 < bridge> DDNet 21:18 < bridge> And we can do stuff like save a couple samples of the ping, get the average, etc. Without having to think at all 21:19 < bridge> is the server to go to specified in server config? 21:21 < bridge> `mysql_options(&m_Mysql, MYSQL_OPT_BIND, m_Config.m_aBindaddr);` 21:21 < bridge> then ddnet server use os rules to make it goto remote? 21:21 < bridge> and how does auth work 21:22 < bridge> oh no theres a password 21:24 < bridge> @learath2 what u say will win trump or kam 21:26 < bridge> github rest api. i'll add you to the repo and it should be possible to just call an rest api with your github token. i'll pull up the doc tomorrow. it's 4am rn i just woke up from a nightmare lmao 21:33 < bridge> Mh very hard to say. It's extremely close in polls. I'd say Kamala but not confident enough that I'd bet on it 21:35 < bridge> fun fact, we were missing every map that have a crc value with leading 0s in chn from the very beginning. just fixed it today. :justatest: 21:47 < bridge> lol, how did that happen though ? 21:49 < bridge> "0123abcd" == "123abcd" 21:49 < bridge> :justatest: 21:51 < bridge> %08x master race 22:04 < bridge> https://github.com/ddnet/ddnet/pull/9200 22:04 < bridge> why isnt this getting merged? 22:30 < bridge> merging is slow sometimes, you can ping a maintainer if you think it should be reviewed, it looks like robyt3 left some comments just now though 23:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1303480264504119347/RGB.png?ex=672be818&is=672a9698&hm=f4ee48764264463dd84cb619b1ca8cd3c2fd614c0e352b7db9b7ef62ae92f539& 23:05 < bridge> how do i squash xd 23:08 < bridge> ``` 23:08 < bridge> error: cannot 'squash' without a previous commit 23:08 < bridge> error: cannot 'squash' without a previous commit 23:08 < bridge> error: cannot 'squash' without a previous commit 23:08 < bridge> error: cannot 'squash' without a previous commit 23:08 < bridge> error: cannot 'squash' without a previous commit 23:08 < bridge> error: please fix this using 'git rebase --edit-todo'. 23:08 < bridge> ``` 23:08 < bridge> ``` 23:08 < bridge> squash 0759544a6 Fix formatting 23:08 < bridge> squash 8f9286cc1 Fix styling 23:08 < bridge> squash 7a2c47143 Remove indents & Rename +hookcoll Thanks KebsCS :) 23:08 < bridge> squash 3f1587bde Remove more extra indents 23:08 < bridge> squash 5677c414c Remove extra margin 23:08 < bridge> reword 3fa6ca05c squash! 23:08 < bridge> ``` 23:09 < bridge> `git reset --soft master` followed by `git commit` again 23:09 < bridge> Or `git rebase -i` and mark all your commits with an s 23:09 < bridge> master is not ddnet/master 23:09 < bridge> master is not remote ddnet/master 23:09 < bridge> but i have a remote called ddnet 23:09 < bridge> which is ... ddnet 23:09 < bridge> Except the first one 23:09 < bridge> Then ddnet/master 23:09 < bridge> kk 23:10 < bridge> i think i pulled ddnet half way thru 23:10 < bridge> or something like that because alot of these changes arent mine 23:10 < bridge> if i squash them anyway will... it just work 23:11 < bridge> ``` 23:11 < bridge> To github.com:SollyBunnyOrganization/ddnet 23:11 < bridge> ! [rejected] cl_hook_coll_size_other -> cl_hook_coll_size_other (non-fast-forward) 23:11 < bridge> error: failed to push some refs to 'github.com:SollyBunnyOrganization/ddnet' 23:11 < bridge> hint: Updates were rejected because the tip of your current branch is behind 23:11 < bridge> hint: its remote counterpart. If you want to integrate the remote changes, 23:11 < bridge> hint: use 'git pull' before pushing again. 23:11 < bridge> hint: See the 'Note about fast-forwards' in 'git push --help' for details. 23:11 < bridge> ``` 23:11 < bridge> no 23:11 < bridge> oh wront remote 23:11 < bridge> wait why is it pushing to the one in the organization? 23:12 < bridge> o cuz its using old url and it got moved 23:14 < bridge> now theres 24 commits instead of... 8 xd 23:16 < bridge> wait can commits have commits? 23:16 < bridge> im so clueless lmao 23:26 < bridge> First of all, go back to how it was, reset hard to the remote version of your branch 23:27 < bridge> Then rebase your changes on top of the current ddnet/master 23:27 < bridge> Then reset soft to ddnet master and commit all the changes into one new commit 23:30 < bridge> ``` 23:30 < bridge> To github.com:SollyBunny/ddnet 23:30 < bridge> ! [rejected] cl_hook_coll_size_other -> cl_hook_coll_size_other (non-fast-forward) 23:30 < bridge> error: failed to push some refs to 'github.com:SollyBunny/ddnet' 23:30 < bridge> hint: Updates were rejected because the tip of your current branch is behind 23:30 < bridge> hint: its remote counterpart. If you want to integrate the remote changes, 23:30 < bridge> hint: use 'git pull' before pushing again. 23:30 < bridge> hint: See the 'Note about fast-forwards' in 'git push --help' for details. 23:30 < bridge> ``` 23:31 < bridge> ```sh 23:31 < bridge> git reset --hard 3fa6ca05cc6931f553ec9ba6c37e64e7e90ff4ba 23:31 < bridge> git rebase ddnet/master 23:31 < bridge> git reset --soft ddnet/master 23:31 < bridge> git commit -m "squash" 23:31 < bridge> git push 23:31 < bridge> ``` 23:31 < bridge> If you are certain you got it right you'll need to force push 23:31 < bridge> dun dun dun 23:31 < bridge> o it worked 23:31 < bridge> Rebases rewrite history so you'll need a force 23:32 < bridge> ty 23:32 < bridge> o i guess i should name it something 23:32 < bridge> normal 23:34 < bridge> Yes, commit names need to be descriptive 23:35 < bridge> it showas as 23:35 < bridge> 23:35 < bridge> `merge sollybunny/... into ddnet/master` 23:35 < bridge> `> the commits in that feature branch` 23:35 < bridge> or just the commits in the feature branch 23:36 < bridge> I don't get it. Is that a merge commit or sth? 23:36 < bridge> that was phrased as a statement but its a question 23:37 < bridge> does it show as blah blah 23:38 < bridge> When we merge it it will show your commit plus a merge commit that would be named like what you showed above 23:38 < bridge> oke 23:39 < bridge> that kinda sucks 23:39 < bridge> lots of commits with no changes