00:10 < bridge> No devs, only a translator 01:13 < bridge> rip 01:16 < bridge> chillerdragon: wire pls 01:53 < ws-client> omw 02:00 < bridge> wordle update for broadcast 02:00 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267632847926329387/image.png?ex=66a97e96&is=66a82d16&hm=82c5974c030a79ca077c873f4d49ba0e6e2961d7629a5172d933b6ddfc1fa1f5& 02:16 < bridge> gm 02:38 < ws-client> ryo and catto i have another feature request for your languages. Pick a style for hex values. Either upper or lower case. So ``0xff`` or ``0xFF`` and then make it a compiler error if its not correct. 03:00 < bridge> Why are my nameplates this far up all of sudden? 03:00 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267648005931012136/image.png?ex=66a98cb4&is=66a83b34&hm=814db543ca8777a88a9c27d4c7a104a638cf3f1b3f46c83d7cbc9af2e8d3dfde& 03:00 < bridge> client restart does not help 03:03 < bridge> ahhh, cl_show_direction 0 03:04 < bridge> i turned that on for a second to test smth 05:21 < ws-client> a `qword` should be 8 byte right? 05:21 < ws-client> This works fine ``mov qword [generic_buffer_512], 0xff_ff_ff`` 05:21 < ws-client> This throws a warning?? ``mov qword [generic_buffer_512], 0xff_ff_ff_ff`` 05:22 < ws-client> actually two warnings ``warning: signed dword immediate exceeds bounds [-w+number-overflow]`` 05:22 < ws-client> ``warning: dword data exceeds bounds [-w+number-overflow]`` 05:22 < ws-client> why is he talking about a dword?? 05:24 < ws-client> https://zillyhuhn.com/cs/.1722309845.png 05:25 < ws-client> https://zillyhuhn.com/cs/.1722309903.png 05:25 < ws-client> interesting if i provide it a 8 byte value it is not complaining 05:25 < ws-client> seems like the value was not fat enough hmm 05:26 < ws-client> https://zillyhuhn.com/cs/.1722309960.png 05:26 < ws-client> for a dword it does not complain if i only give it one byte <:tee_thinking:478629518358085653> 07:22 < bridge> chillerdragon: can you gimme the file 07:47 < bridge> there's definitely some reason why compiler moves this value in register first, and only then moves it into stack, let's wait for lerato xd 07:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267720089159860224/image.png?ex=66a9cfd6&is=66a87e56&hm=7b6491727aae39405d193f5df8364eae19395758969cb03a26ab96223c970572& 08:06 < bridge> Why does it move rsp into rbp? Can’t it use rsp directly? Also why zero eax in the end? 08:08 < bridge> maybe it's cleanup step 08:08 < bridge> Yes looks like it but how is that clean xd 08:09 < bridge> Does a c compiler keep the registers at 0? Why? Will it optimize out zero assignments then? 08:10 < bridge> oh, it's return value xd 08:10 < bridge> from main function 08:11 < bridge> Ah fair 08:11 < bridge> What about implicit rsp usage 08:12 < bridge> hm? 08:13 < bridge> Why not remove the push rbp 08:13 < bridge> And use rsp in the move 08:13 < bridge> it's -O0 08:14 < bridge> So it inserts random instructions xd 08:14 < bridge> Trol compiler 08:14 < bridge> no 08:14 < bridge> it sets up stack frame 08:15 < bridge> Idk what that is I should probably read up on the basics 08:15 < bridge> Look at what it does when you only give it one byte to move. Then it'll be obvious why this is happening 08:16 < bridge> here you can see it reserves some bytes for function stack 08:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267727432996229162/image.png?ex=66a9d6ad&is=66a8852d&hm=059f6b262001da0803f7003ab0337eb3eb435417246493c68e2f7ba3a05c6838& 08:16 < bridge> before there wasn't sub because it was a leaf function xd 08:17 < bridge> It no longer pops 08:17 < bridge> What leave do? 08:17 < bridge> and if it's a leaf function it can you 128 bytes red zone something to store local variables 🤓 08:17 < bridge> maybe* 08:17 < bridge> and if it's a leaf function there's 128 bytes red zone something to store local variables 🤓 08:19 < bridge> >Releases the stack frame set up by an earlier ENTER instruction. The LEAVE instruction copies the frame pointer (in the EBP register) into the stack pointer register (ESP), which releases the stack space allocated to the stack frame. The old frame pointer (the frame pointer for the calling procedure that was saved by the ENTER instruction) is then popped from the stack into the EBP register, restoring the calling procedure’s stack frame. 08:19 < bridge> 08:19 < bridge> A RET instruction is commonly executed following a LEAVE instruction to return program control to the calling procedure. 08:19 < bridge> > Releases the stack frame set up by an earlier ENTER instruction. The LEAVE instruction copies the frame pointer (in the EBP register) into the stack pointer register (ESP), which releases the stack space allocated to the stack frame. The old frame pointer (the frame pointer for the calling procedure that was saved by the ENTER instruction) is then popped from the stack into the EBP register, restoring the calling procedure’s stack frame. 08:19 < bridge> 08:19 < bridge> A RET instruction is commonly executed following a LEAVE instruction to return program control to the calling procedure. 08:19 < bridge> > Releases the stack frame set up by an earlier ENTER instruction. The LEAVE instruction copies the frame pointer (in the EBP register) into the stack pointer register (ESP), which releases the stack space allocated to the stack frame. The old frame pointer (the frame pointer for the calling procedure that was saved by the ENTER instruction) is then popped from the stack into the EBP register, restoring the calling procedure’s stack frame. 08:19 < bridge> 08:19 < bridge> > A RET instruction is commonly executed following a LEAVE instruction to return program control to the calling procedure. 08:21 < bridge> not gonna lie, it told me nothing xddd 08:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267728661537099828/image.png?ex=66a9d7d2&is=66a88652&hm=d2c85e33d8993960b29e411b536682a719d5cc5184c630c231bde4a73dce1bff& 08:23 < bridge> Ok now I'm confused too. I assumed it'd generate something else 08:23 < bridge> xdd 08:25 < bridge> no it's to save the stack pointer 08:26 < bridge> you want to keep track of the stack for each calling function whenever you enter a called function 08:26 < bridge> so you save where it was before, and it'll get it back when returning 08:26 < bridge> no it's to save the base pointer 08:26 < bridge> chillerdragon: did you delete the message -.- 08:26 < bridge> or i can't read 08:26 < bridge> ah this is 08:27 < bridge> but the best way is to draw it, you'll understand it better 08:27 < bridge> i understand it, i have kinda working functions in my compiler xd 08:28 < bridge> Ah okay, I get it, sorry, just woke up 08:29 < bridge> `0xFFFFFFFF` is a negative number, mov immediate will sign extend it into the 64 bit register, but that's not what we want, we want it zero extended 08:29 < bridge> That's why chiller was getting the weird "overflow" warning too 08:32 < bridge> are immediates signed numbers? 08:33 < bridge> not in general, but some instructions treat them as such 08:33 < bridge> but mov is one of them? 08:33 < bridge> if you open the mov documentation, you'll see that there is one single exception, `MOV r/m64, imm32` that's the one that treats it as signed 😄 08:34 < bridge> we assembling now? 08:34 < bridge> I don't remember the history of it, but I'd guess it's to allow legacy 32 bit code to run on 64 bit seamlessly 08:34 < bridge> more for chiller as he asked I meant 08:34 < bridge> fuck, i need instruction docs from smart language into grug cave man 08:36 < bridge> @learath2 how does this work if there's no in docs for `mov` anything about imm64 :\ 08:37 < bridge> There is? 08:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267733060984766579/image.png?ex=66a9dbeb&is=66a88a6b&hm=c3e299a68d48bbab379d65d1588149d47b1468915cb3e99fe825121c2fd942f0& 08:39 < bridge> ok, i had x86 instruction set reference opened all this time :lol: 08:39 < bridge> Oh actually, that's a memory mov 08:39 < bridge> That one truly doesn't exist 08:39 < bridge> It's cheating 08:40 < bridge> :pepeH: 08:40 < bridge> It's using the sign extension behaviour and just moving `0xFFFFFFFF` 08:40 < bridge> If you make it `0xDEADBEEFDEADBEEF` it'll mov it in two pieces 08:41 < bridge> Or it'll mov into a register then mov into memory 08:42 < bridge> can you send the link of this website, i can't find reference for x64 :pepeW: 08:42 < bridge> idk what compilers do now 08:42 < bridge> https://www.felixcloutier.com/x86/mov 08:42 < bridge> This isn't really an authoritative source tbf, but it's much more pleasant to use than reading intels manual 😄 08:43 < bridge> I'm guessing this, memory access is expensive 08:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267735575964680243/image.png?ex=66a9de42&is=66a88cc2&hm=2a736f8451f7f2382ec18160f4782348b804b798d0290936910cd0a6f62b421d& 08:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267735576271126609/image.png?ex=66a9de42&is=66a88cc2&hm=c40cc7aef1ab696d97e7996a75ed1a46776fbe181f722c7e1a2bf3130d8a1ee6& 08:51 < bridge> It's lying, look at the actual immediate encoded in the instruction 08:51 < bridge> it's clearly moving `0xffffffff` and allowing sign extension to take care of the rest of the fs 08:51 < bridge> try `0xde_ad_be_ef_de_ad_be_ef` 08:52 < bridge> ``` 08:52 < bridge> foo.asm:8: warning: signed dword immediate exceeds bounds [-w+number-overflow] 08:52 < bridge> foo.asm:8: warning: dword data exceeds bounds [-w+number-overflow] 08:52 < bridge> ``` 08:52 < bridge> ```0000000000000000 <_start>: 08:52 < bridge> 0: 48 c7 04 25 00 00 00 movq $0xffffffffdeadbeef,0x0 08:52 < bridge> 7: 00 ef be ad de 08:52 < bridge> ``` 08:52 < bridge> my wifi be like 08:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267736616072511498/image.png?ex=66a9df3a&is=66a88dba&hm=702a6e962195dd4970a38c3109eb806d924a9510dd0a44781242f36c3a5e8afd& 08:53 < bridge> I actually don't really know how nasm works to be fair. I'm guessing it knows mov with memory target can't take anything bigger than a dword immediate 08:54 < bridge> If you try it in C you'll see the compiler will do it in one mov if its `0xffffffffffffffff` and two movs otherwise 08:56 < bridge> ye, it uses `movabs` first and then moves from a register 08:56 < bridge> @milkeeycat https://www.nasm.us/doc/nasmdo12.html#section-12.2 here you go, it seems nasm does truncate all immediates EXCEPT the outlier r64 imm64 08:57 < bridge> I never really understood why it was called movabs. The intel manual calls it mov 08:59 < bridge> That explains why it got all goofed up when passing it to a syscall xd 09:05 < bridge> at first i though it takes absolute value of a number xd 09:05 < bridge> metoo 09:05 < bridge> I was like huh, what a niche instruction 09:07 < bridge> around 2% slower than std mscp for me 09:07 < bridge> 09:07 < bridge> lmao, synthetic benchmarks 09:08 < bridge> For things like channels, stuff like batching and bursts matter very much, which makes the performance really workload dependent 09:08 < bridge> yeah but then he should write different benchmarks and not show one where it's like 20x faster than std xd 09:08 < bridge> that is just clickbait 09:11 < bridge> @learath2 you are go pro, right? like not the camera but yeah. 09:11 < bridge> 09:11 < bridge> have u ever used "chan" in go? 09:11 < bridge> Ofc, chans are our main synchronization primitive almost 09:12 < bridge> nice.. i saw it a few times in benchmarks for channels 09:12 < bridge> was performing quite well, is it std? 09:12 < bridge> Not only is it std, it's also built into the syntax 09:12 < bridge> There is special syntax to receive from a chan in go 09:13 < bridge> ah cool 09:18 < bridge> Go chans are not very fair though so that becomes a concern sometimes 10:26 < ws-client> omg i hate assembly 10:26 < ws-client> somehow my rcx goes all blaze it 420 for no reason 10:26 < ws-client> https://zillyhuhn.com/cs/.1722327967.png 10:27 < bridge> Well obviously whatever `dbg_print_reg` is destroys it 10:27 < bridge> just pull out gdb 10:28 < ws-client> i dont like debuggers 10:28 < ws-client> i like print driven debugging 10:28 < ws-client> but ye seems like there is a bug in my printer omagawd 10:30 < bridge> > i dont like debuggers 10:30 < bridge> they can help you a lot. even more so in assembly… 10:30 < bridge> print driver debugging is good when you can easily print stuff xd 10:31 < bridge> print driven debugging is good iff you are debugging something single threaded and your print doesn't have bugs 😄 10:32 < ws-client> i fixed the bug in my print method but i dont understand how it was one in the first place 10:32 < ws-client> does the write syscall set rcx? 10:33 < ws-client> i thought syscalls only set rax 10:34 < bridge> > A system-call is done via the syscall instruction. This clobbers %rcx and %r11 as well as the %rax return value, but other registers are preserved. 10:34 < bridge> > The syscall instruction uses rcx to store the address of the next instruction to return to 10:34 < bridge> > https://stackoverflow.com/questions/50571275/why-does-a-syscall-clobber-rcx-and-r11 10:34 < bridge> according to some random stackoverflow answer 10:34 < bridge> (https://stackoverflow.com/a/2538212/870079) 10:34 < bridge> > The syscall instruction uses rcx to store the address of the next instruction to return to 10:34 < bridge> https://stackoverflow.com/questions/50571275/why-does-a-syscall-clobber-rcx-and-r11 10:35 < ws-client> omagawd good to know 10:35 < bridge> rcx isn't preserved in sysv abi 10:35 < ws-client> trol abi 10:35 < bridge> I'm guessing that's just directly inherited from linux kernel 10:35 < bridge> Though idk I don't remember exactly 10:36 < bridge> Yeah 10:36 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267762695919112222/image.png?ex=66a9f784&is=66a8a604&hm=eb88f0d95406e272702506b0debd88a5101e58f481a12f56fdd1d7965172c4c1& 10:37 < bridge> https://gitlab.com/x86-psABIs/x86-64-ABI/-/jobs/artifacts/master/raw/x86-64-ABI/abi.pdf?job=build A2.1p2 to be exact 10:56 < bridge> I wonder how people design new ABIs 10:56 < bridge> there's no data to come from, for new architectures 10:56 < bridge> and it's going to be fixed forever 10:56 < bridge> and have quite some impact on the speed of code 11:06 < bridge> I'm guessing it happens along with chip design for new architectures 11:06 < bridge> so amd designed the calling convention for amd64? 11:07 < bridge> I'd say that's "old architectures". I was thinking more riscv or aarch64 11:10 < bridge> Or perhaps they don't think too too hard about it. We don't really see wildly different abis very often do we? 11:11 < bridge> I guess we do see internal abis that are pretty different now that I think about it 11:11 < bridge> you thinking of go? ^^ 11:12 < bridge> yeah, go is a bit of a standout 😄 11:12 < bridge> maybe luajit also has one 11:12 < bridge> probably, or other JITs 11:17 < bridge> I've had another idea for https://github.com/ddnet/ddnet/pull/8283: 11:19 < bridge> we coul parse a very limited subset of html, only accepting ``, ``, `<` and `>` as tokens. no xml parsing required, only string searching 11:19 < bridge> I don't like it at all 11:19 < bridge> we know from the client version that it supports precisely this, so it's not a backcompat hazard 11:19 < bridge> It's very long 11:19 < bridge> it is. why is that a problem? 11:19 < bridge> The broadcast string is already length limited 11:20 < bridge> to ~1KiB 11:21 < bridge> why parse html 11:21 < bridge> And xml implies some sort of hierarchy in my mind. There is no hierarchy we support here. It just feels like we are bolting on html because we want a standard 11:21 < bridge> where else is html used in tw? 11:21 < bridge> There just is no standard for this 11:21 < bridge> the standard is hex codes just like the editor 11:21 < bridge> it's not real html 11:21 < bridge> html is a standard for text formatting 11:21 < bridge> So is LaTeX 11:22 < bridge> just do <#ffffff> 11:22 < bridge> sometimes you have to sacrifice the standard to give the user a better experience 11:22 < bridge> eh, it's just one program. it's an old program, guess 11:22 < bridge> eh, it's just one program. it's an old program, I guess 11:22 < bridge> We can't chillerdragon will have an aneursym if the 0.7 thing isn't supported 11:22 < bridge> use linux command line colors 11:22 < bridge> 😏 11:22 < bridge> I think we should really not require 0.7 compatiblity 11:23 < bridge> that should just not be an argument 11:23 < bridge> This is also an in-band standard for coloring text 11:23 < bridge> well compatibility btwn the two wont be hard to code. putting in that heinous format is weird just to keep 0.7 broadcast compat though 11:23 < bridge> err as long as broadcasting between different client versions is not hard to code* 11:24 < bridge> "Should" being the operative word here. Politics is also sadly a factor in what is supposed to be a technical decision 11:24 < bridge> I say *we* should ignore that argument 11:24 < bridge> i.e. as maintainers of ddnet, we should decide that we don't base technical discussions on 0.7 11:25 < bridge> I don't like pissing off the 0.7 people, they get very mean 11:25 < bridge> then we'll tell them to go away 11:25 < bridge> if they get mean 11:25 < bridge> I don't think it'll be hard to find a majority in ddnet maintainers for this 11:25 < bridge> why not implement it the way you want and have them do the work of compatibility if they want 11:25 < bridge> I don't think it'll be hard to find a majority in ddnet maintainers in favor of this 11:26 < bridge> then if 0.7 is ever completely dropped it can get refactored out 11:27 < bridge> Well if we don't care what they think. I think being typeable is nice. But I don't think there is any point to pretending we support xml. 11:27 < bridge> 11:27 < bridge> Just have <#abc> or <#aabbcc> 11:27 < bridge> Do we ever want to add more formatting then just color? 11:27 < bridge> the point in pretending we support xml is that we can easily support more formatting in the future 11:27 < bridge> the point in pretending we support html is that we can easily support more formatting in the future 11:28 < bridge> the point in pretending we support a subset of html is that we can easily support more formatting in the future 11:28 < bridge> e.g. bold text 11:28 < bridge> even tho i agree with it. 11:28 < bridge> 11:28 < bridge> there will be some minor API change, and then YOU have to fix the 0.7 port, bcs the 0.7 ppl go afk forever 😂 11:28 < bridge> 11:28 < bridge> it's always like that 11:28 < bridge> no matter the abstraction you use, it will always be at least a small burden to carry around 11:28 < bridge> that means we have to write `<#aabbcc>some text` ? 11:28 < bridge> or `<#aabbcc>` and `` 11:29 < bridge> Can this handle a span in a span? Can we add a short alias for span? 11:29 < bridge> thats nicer 11:29 < bridge> I was thinking no terminator needed. Behaves more like console color change escapes 11:30 < bridge> But yeah a terminator to reset the color is also fine to have 11:30 < bridge> also works 11:30 < bridge> or text ? 11:30 < bridge> `` 11:30 < bridge> no span in a span 11:30 < bridge> is what I'd go with 11:30 < bridge> This I would be more interested in. Xml with our own tags instead of html 11:30 < bridge> that's similar to rich text in Unity for example 11:30 < bridge> do you have a link to the unity stuff? 11:30 < bridge> https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/StyledText.html 11:31 < bridge> that would make it easier to do things like as well i guess 11:31 < bridge> I was more curious whether the naive parser would choke on it 11:31 < bridge> ^ 11:31 < bridge> sad that markdown has no colors 11:32 < bridge> that looks like html ^^ 11:32 < bridge> seems like a cleaner text formatting thing xd 11:32 < bridge> unfortunately not really well-defined. each parser does its own thing 11:32 < bridge> it's not quite html but similar 11:32 < bridge> oh, true. not html 11:33 < bridge> > The markup system is inspired by HTML but isn't intended to be strictly compatible with standard HTML. 11:41 < bridge> what is the CLight entity? 11:42 < bridge> wow, i have never seen that xdd 11:42 < bridge> are those the retracting laser beams? 11:42 < bridge> might be 11:42 < bridge> whats it look like 11:43 < bridge> but they apparently have a curvature 11:43 < bridge> it's funny how these oldschool ddrace things are almost not used anymore 11:43 < bridge> i dont know 11:43 < bridge> ENTITY_LASER_C_SLOW, 11:43 < bridge> ENTITY_LASER_C_NORMAL, 11:43 < bridge> ENTITY_LASER_C_FAST, 11:43 < bridge> yea 11:43 < bridge> could be spinning laser too (those have speeds) 11:44 < bridge> "LASER LENGTH CHANGE: Put next to LASER LENGTH, causes it to length and shorten constantly. Works only on (NON-)SPINNING LASER, not on DOOR. Lengthen, slow."; 11:44 < bridge> ah okay 11:44 < bridge> thx 11:44 < bridge> so they are the retracting thingies 11:45 < bridge> and i almost hopped we have a hidden RTX impl 11:45 < bridge> xDD 11:45 < bridge> imagine 11:45 < bridge> these mfs 11:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267780168269824010/image.png?ex=66aa07ca&is=66a8b64a&hm=9917ac4996fa24cf518b38569632fe7bcb49c11135c735bdd4a0503d4ee2418d& 11:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267780168630538285/image.png?ex=66aa07ca&is=66a8b64a&hm=2ca73402d965038feece6eaf81c2d28dbacb9ca704a56566ee1ece7c408afed8& 11:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267780168869744692/image.png?ex=66aa07ca&is=66a8b64a&hm=5e7e71bff4a0bc135e15622737b8812d6728fcbae9fb5cc72559fb2d0debdfcf& 11:46 < bridge> bro i hate them so hard 11:46 < bridge> their hitbox is so random 11:47 < bridge> but who tf thought to themselves "huh lets call these moving lasers light" 11:48 < bridge> but the other moving lasers are not called that xd 11:48 < bridge> https://github.com/GreYFoX 11:48 < bridge> thank this guy 11:48 < bridge> gonna email him 11:49 < bridge> "Yo wtf is CLight man. WTF?!" 11:49 < bridge> xD 11:49 < bridge> damn 11:49 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267781203025723542/image.png?ex=66aa08c1&is=66a8b741&hm=d43bbaf563f5a0c9dee4ae5ada937afab40476dbb41b96d701220a3108af5aed& 11:50 < bridge> xDDDDDDDDDDDDDDDDDDDDDD 11:50 < bridge> nice achievement 11:50 < bridge> if we ever add achievements: You made 0 points in this FNG round 11:51 < bridge> i would have this achievement every round 😬 11:51 < bridge> stackable achievements 11:51 < bridge> aka. stats 11:51 < bridge> xd 12:06 < ws-client> GreYFoX is goat don't question is namings! 12:06 < ws-client> his* ffs 12:23 < ws-client> https://zillyhuhn.com/cs/.1722335015.png 12:23 < ws-client> thanks spell checker 12:24 < bridge> you have spell checker in neovim? :monkaS: 12:35 < ws-client> yea i was surprised too. But you wont believe the typo fixes i commited in the last few days. Its a game changer. Also I don't have to google how to type some english words anymore xd. It just auto fixes it. 12:36 < bridge> autofix is dangerous 12:36 < bridge> just type with errors :gigachad: 12:36 < ws-client> Well i see the suggestion 12:36 < bridge> ah, with manual verification it's fine again 12:36 < ws-client> ye 12:36 < ws-client> i gotta press the fix button 12:37 < ws-client> otherwise this mf would have corrupted my hexdump haha 12:37 < bridge> ^^ 12:45 < bridge> @0xdeen cheat client sale on the list 12:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267795297791115287/image.png?ex=66aa15e1&is=66a8c461&hm=1257c8692ec689636baf77deaced10675ab5d2e1759b22416c508fbc9d3103c9& 12:46 < bridge> krx 12:46 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267795543170486322/image.png?ex=66aa161b&is=66a8c49b&hm=615613e4bbe76765539fb13a4e27c4a0d6cf57d611e7695ff45b281c226d70c1& 12:57 < bridge> :dab1: :dab2: :dab3: 12:57 < bridge> 12:57 < bridge> nix goated 12:57 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267798140950675466/image.png?ex=66aa1887&is=66a8c707&hm=5828503d5dd41d531d37e00ed4a5edda251299c90d22470fd5989342509583d2& 12:57 < bridge> can you make an admin ticket about this instead? It's better to not give them attention @mian_ku 12:57 < bridge> And also delete the message here 12:58 < bridge> Thanks 12:58 < bridge> ok 13:01 < bridge> server banned 13:01 < bridge> :D 13:02 < bridge> what rule did the server break? 13:02 < bridge> advertising cheat clients 13:02 < bridge> is there any rule list I can see please 13:04 < bridge> there's https://www.teeworlds.com/?page=docs&wiki=rules/server_rules I guess 13:04 < bridge> it doesn't list the cheat client rule. I guess we could at some point create our own 13:04 < bridge> it doesn't list the cheat client rule. I guess we could at some point create our own list 13:05 < bridge> You shall have no other gods before Me. 13:05 < bridge> You shall not make idols. 13:05 < bridge> You shall not take the name of the LORD your God in vain. 13:05 < bridge> Remember the Sabbath day, to keep it holy. 13:05 < bridge> Honor your father and your mother. 13:05 < bridge> You shall not murder. 13:05 < bridge> You shall not commit adultery. 13:05 < bridge> You shall not steal. 13:05 < bridge> You shall not bear false witness against your neighbor. 13:05 < bridge> You shall not covet. 13:05 < bridge> You shall not advertise bot clients. 13:05 < bridge> If you are getting masterbanned you are doing something very wrong 13:05 < bridge> doesn't that kinda break the freedom, others could have sponsoring info, just not if it's a cheat 13:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267800196478406726/brave_jy271ISBz9.png?ex=66aa1a71&is=66a8c8f1&hm=aaf9381706526ad8fbf7290f5c15baf8cf1b7de25975e7dc43de4073fe07557c& 13:05 < bridge> You shall have no other gods before Me. 13:05 < bridge> You shall not make idols. 13:05 < bridge> You shall not take the name of the LORD your God in vain. 13:05 < bridge> Remember the Sabbath day, to keep it holy. 13:05 < bridge> Honor your father and your mother. 13:05 < bridge> You shall not murder. 13:05 < bridge> You shall not commit adultery. 13:05 < bridge> You shall not steal. 13:05 < bridge> You shall not bear false witness against your neighbor. 13:05 < bridge> You shall not covet. 13:06 < bridge> You shall not advertise bot clients. 13:06 < bridge> correct 13:06 < bridge> The operative word is "purely" in that rule. But in general rules are limits on "freedoms" 13:07 < bridge> interesting ideology, but seems like the same rules don't apply for everyone 😄 13:07 < bridge> the server shouldnt exist purely for advertisement, (e.g, dont create 500 ghost-servers advertising you have a single fng server) or in that case, advertise a modified cheat client 13:07 < bridge> the cheat client thing is separate from that 13:08 < bridge> you're not allowed to advertise cheat clients 13:08 < bridge> don't get hung up on that advertising rule 13:08 < bridge> fari 13:08 < bridge> fair 13:08 < bridge> add that rule to teeworlds.com so they know then 13:08 < bridge> that's common sense 13:08 < bridge> you think it's ok to advertise cheat clients? xd 13:09 < bridge> feel free to create a ruleset for the website if you'd like to see one @opulently 13:09 < bridge> https://github.com/ddnet/ddnet-web/ 13:09 < bridge> I think it's not okay that someone doesn't know that he's violating a rule, because that rule doesn't exist 13:09 < bridge> Extraordinary claims require extraordinary evidence. Do you see other cheat client advertisments on the serverlist? 13:10 < bridge> If the rules are not being applied equally, you should be able to show an example of it 13:11 < bridge> I was talking about getting banned for a non-existent rule. Anyone can make up a rule and tell me I broke it. It's just like getting cancelled but in teeworlds 13:12 < bridge> https://tenor.com/view/smh-gif-21608426 13:12 < bridge> xd 13:12 < bridge> It's just undocumented. It should be obvious that you can't advertise bot clients. Just like you can't advertise hitman services on craigslist 13:12 < bridge> add that rule to the website so that the next person does not step on that exact same trap 13:12 < bridge> I think @opulently is right, it’s a bit unfair to ban someone for breaking a rule they couldn’t have known about. Could you please add this rule to the official list so everyone’s clear on it? 13:12 < bridge> @heinrich5991 it was on topic gif :feelsbadman: 13:12 < bridge> Disclaimer, the person above me actively develops and sells a bot 13:13 < bridge> cap 13:13 < bridge> Noo, you got in the way 13:13 < bridge> disclaimer, the person two above Learath2 is banned 13:13 < bridge> sell bots for other games in teeworlds 13:13 < bridge> that's allowed 13:13 < bridge> ehh 13:13 < bridge> :kek: 13:13 < bridge> Oh look who we have here 😬 13:13 < bridge> We should add a list of rules probably, but as I said if you run afoul of this rule, you are just a bad actor 13:14 < bridge> There is no accidentally running into it 13:15 < bridge> It seems I've gotten censored 13:15 < bridge> well 13:16 < bridge> yep, ddnet respetcs free speech and doesn't abuse powers 😄 13:16 < bridge> one could say if one cannot talk about something, them the problem of said "something" does not exist. 13:16 < bridge> then* 13:17 < bridge> that's sarcasm 13:19 < bridge> melon is cooking something really huge 13:19 < bridge> :pepe_ew92: it's not really free speech if you advertise a closed source, mabe malware infected modification of an open source client to sell it for money 13:19 < bridge> i have fast hands but a slow mind okay :/ 13:19 < bridge> words hard 13:19 < bridge> type faster, so that I can react with a melon emoji and continue working 😄 13:20 < bridge> lmao 13:20 < bridge> :pepe_ew92: it's not really free speech if you advertise a closed source, maybe malware infected modification of an open source client to sell it for money 13:20 < bridge> 🦅 🦅 🇺🇸 🇺🇸 13:20 < bridge> melons have no mind 13:20 < bridge> when will be the results of mod applications btw 13:21 < bridge> just seeds of evil 13:21 < bridge> @makeitaquote 13:21 < bridge> oh wait wrong app.. 13:21 < bridge> Probably this weekend. I compiled like half of my decisions. I'm hoping murpi has some time too soon 13:21 < bridge> that's literally what I wasn't talking about. I was talking about this guy gettings banned and like half the messages deleted. There's also undocumented rules you can think up of when you are staff. So stop responding if you don't know what we're talking about 13:21 < bridge> how many memory leaks you got from compiling 13:22 < bridge> Zero. I'm proficient in C 13:22 < bridge> `I was talking about getting banned for a non-existent rule. Anyone can make up a rule and tell me I broke it. It's just like getting cancelled but in teeworlds` - i'd say my context is fitting 13:22 < bridge> :D 13:22 < bridge> yeah gaslight me, go on 13:22 < bridge> I am gonna leave 13:22 < bridge> HuH 13:22 < bridge> I find it ok to add said rule 13:23 < bridge> just to prevent further lifetime wasting conversations like this 13:23 < bridge> This isn't an airport. You don't need to announce your departure 13:23 < bridge> @jxsl13 please, do. the repository is https://github.com/ddnet/ddnet-web/ 13:23 < bridge> and specifics? 13:23 < bridge> no advertising cheat clients in general? 13:23 < bridge> or only teeworlds 13:23 < bridge> "cheat clients bad. no advertise chat clients" 13:24 < bridge> "cheat clients bad. no advertise cheat clients" 13:24 < bridge> Bro was trying to defend the fundamental right of tees to advertise bot clients for financial gain, is confused when no one but the bot developer agrees 13:24 < bridge> We truly live in a time 13:24 < bridge> 😂 13:24 < bridge> no advertising of cheats (might be not even a client, imagine teeworlds hardware cheats) 13:24 < bridge> add a file like the following, I guess: https://github.com/ddnet/ddnet-web/blob/79036aa77fd2fbb7ad08879bf7abeaab0938c395/www/rules/index.html 13:25 < bridge> sounds good 13:25 < bridge> no advertising of cheats for online games 13:25 < bridge> I'd say all teeworlds master rules apply + whatever we add I guess 13:25 < bridge> if someone pulls of hardware cheats they deserve it xD 13:26 < bridge> imagine having a a proxy that interferes with your inputs to make you not die lmao 13:26 < bridge> imagine having a proxy that interferes with your inputs to make you not die lmao 13:26 < bridge> well thats not really hardware i guess 13:26 < bridge> hey 13:26 < bridge> idk 13:26 < bridge> my friend have problem @mik209 13:26 < bridge> I mean, advertising a baldur's gate 3 godmode mod would be ok, I guess 13:26 < bridge> imagine having a proxy that interferes with your input packets to make you not die lmao 13:26 < bridge> he cant join for servers 13:27 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267805646976319538/image.png?ex=66aa1f84&is=66a8ce04&hm=689ba8d7cd09808b56d24d005ae1e355eeb0f9fae88fb18a936fad6321ab23b1& 13:27 < bridge> better ask such questions in #questions next time 😄 13:27 < bridge> It's not the place tbf. I'd only allow hosting sponsors 13:27 < bridge> k 13:27 < bridge> #✉-create-a-ticket ban-appeal 13:27 < bridge> @mik209 ало уебан 13:27 < bridge> <0xdeen> or send me a DM with the ipv4 address 13:28 < bridge> not necessarily paid 13:29 < bridge> free god mod mod for an (primarily) offline game 13:29 < bridge> just an example 13:30 < bridge> But why do you need to advertise it in the ddnet serverlist? 13:30 < bridge> @mik209 13:30 < bridge> отправь ему 13:30 < bridge> dunno 13:30 < bridge> increase user base of a mod 13:31 < bridge> 2024-07-30 14:31:34 I teamchat: хлеб: smit1x: кого чуркой назвал уебище 13:34 < bridge> I'd be fine with "no cheats of online multiplayer games" and let the "not purely advertising" rule take care of the rest 13:36 < bridge> i think it should also add: "no advertising for clients with custom features". 13:37 < bridge> 13:37 < bridge> Because else they come with their flawed argumentation that on their mod it is no cheat 13:37 < bridge> (this is only for the server list right?) 13:37 < bridge> it should generally not advertise any clients i guess xd 13:37 < bridge> I think the rule should still allow stuff like advertising T-Client 13:38 < bridge> in the server list? 13:39 < bridge> i think that creates more harm than good, simply don't advertise any clients. 13:39 < bridge> 13:39 < bridge> if ppl join that server fine 13:40 < bridge> we currently don't moderate the masterserver list a lot 13:40 < bridge> I like that, it doesn't create a lot of owrk 13:40 < bridge> by adding a lot of rules, I feel that people are going to come to me for smaller things 13:41 < bridge> sure, but then you also have to deal with the edge cases that come with flawed arguments 13:41 < bridge> yes. I'll just ban them. so far, no problem has arisen from my serverlist dictatorship 13:41 < bridge> AFAIK 13:42 < bridge> lmao 13:42 < bridge> how surprising 13:50 < nameless_tee> Hello, i would like to suggest something 13:50 < nameless_tee> for the ddnet.org platform 13:53 < bridge> xd 13:53 < bridge> anyway im against having servers that promote/allow bot clients on them in serverlist, if people want to hvh, share ip by yourself 13:54 < bridge> nobody here is in favor of allowing to advertise bot clients 13:57 < bridge> what do you want to suggest huh 14:03 < bridge> Chrome's L of the day. It's not possible to copy color from input of type color :pepeW: 14:04 < bridge> what is type color? xd 14:04 < bridge> it's like color picker 14:05 < bridge> https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_type_color 14:05 < bridge> this thing? 14:05 < bridge> ye 14:05 < bridge> how do you copy from that generally? xd 14:05 < bridge> click on it 14:05 < bridge> firefox gives me a full palette 14:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267815432581287968/image.png?ex=66aa28a1&is=66a8d721&hm=89e3c53fdfbd4250e9d21b29964324781c607e0f6de6403e495f49c496bed5e1& 14:05 < bridge> but how can i copy xd 14:06 < bridge> it took some time to find out but you can right click on color 14:06 < bridge> in the user defined i can copy the #color code 14:07 < bridge> these html input elements really need some standard xd 14:07 < bridge> well i cant copy anything from firefox except opening the color picker 14:08 < bridge> you can right click on color and there will be "customize" text 14:08 < bridge> and from there you can copy hex 14:08 < bridge> yeah wow xD 14:08 < bridge> then i can also open a tab and search for color picker online xdd 14:09 < bridge> xd 14:09 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267816244866715668/image.png?ex=66aa2963&is=66a8d7e3&hm=c91662f9e7e7b034c99578b76a2ce3439b4950337b6e88558051e7d4d8a2a444& 14:09 < bridge> better than all the shitty native ones 14:09 < bridge> ye, one dude at work was yapping that he can't copy color from chrome I told him to switch to firefox 😬 14:10 < bridge> and did he switch? XD 14:10 < bridge> no 14:10 < bridge> :/ 14:10 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267816654503678011/image.png?ex=66aa29c5&is=66a8d845&hm=528322536a17464e54e263dd4881a967731caca0b27681c495202fde505f1570& 14:10 < bridge> on hex mode chrome lets me copy it too 14:10 < bridge> in one go 14:11 < bridge> well i ofc use chromium 14:11 < bridge> wot 14:11 < bridge> what version you use 14:11 < bridge> Version 126.0.6478.182 (Official Build) built on Debian trixie/sid, running on Debian trixie/sid (64-bit) 14:12 < bridge> I have 125.0.6422.60 14:12 < bridge> did they fix it 14:12 < bridge> i dunno 14:12 < bridge> i honestly never used a native color picker yet xD 14:12 < bridge> or i didnt notice 14:17 < bridge> :pepeW: 14:17 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267818451515347067/image.png?ex=66aa2b71&is=66a8d9f1&hm=5609d8a0abe961b8a2959edeaef45808dcff7deb19cf204ae7c091fbd06912f7& 14:18 < bridge> I still can't copy even tho I have version 127 14:18 < bridge> famous last words 14:18 < bridge> watafak 14:18 < bridge> ?????? 14:18 < bridge> u need tutorial? xd 14:18 < bridge> paste value from input here 14:18 < bridge> right now! 14:18 < bridge> FBI 14:19 < bridge> ah lol 14:19 < bridge> but it even marks it 14:19 < bridge> I somehow managed to join my local server, connected dummy, and it went to my main server 14:19 < bridge> YUP 14:19 < bridge> my main is now on my local server and my dummy is on the real server 14:19 < bridge> mh second time i hear this 14:19 < bridge> maybe we added a bug somehow 14:19 < bridge> probably 14:20 < bridge> https://issues.chromium.org/issues/40124558 14:20 < bridge> 4 years 14:20 < bridge> to fix such a simple thing 14:21 < bridge> and you can't paste as well 14:21 < bridge> that's crazy 14:22 < bridge> totally bullshit 14:22 < bridge> who made that thing xDD 14:22 < bridge> thanks god I use firefox and never had this problem before 😏 14:23 < bridge> if it wouldnt be so hard to contribute to such projects 14:23 < bridge> i'd still not do it anyway, don't lie to myself 14:23 < bridge> Were you able to play on both servers at the same time? That'd be lit 14:23 < bridge> yes, since it loaded the same map it was possible. but it was laggy on my main, only dummy worked nicely. i could use rcon on both, tho 14:23 < bridge> seperately 14:24 < bridge> Let's make that a feature :greenthing: 14:24 < bridge> k-client 14:24 < bridge> xd 14:24 < bridge> outdated af 14:25 < bridge> I liked the client back then 14:38 < bridge> <_z_e_n_i_t_h_> hi 14:39 < bridge> hi, welcome to #developer chat room 14:39 < bridge> hi, im new 14:40 < bridge> hi tsfreddie, nice to see you back in new 14:40 < bridge> can i pm you 14:41 < bridge> no 14:41 < bridge> no, everyone here wants to know our secrets 14:41 < bridge> "but my custom client wont compile" xd 14:41 < bridge> okay then, i wont send private funnies then 14:42 < bridge> fak u got me 14:42 < bridge> now i am curios 14:53 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267827480941695087/schrodingers-error-handling-v0-ubp4pi671luc1.png?ex=66aa33da&is=66a8e25a&hm=b366d87ab977b4a506666c3af26547301f0f76559c474f12a9d6de1a772bf648& 15:13 < bridge> Pictures of four fingers from a Discord Admin. Only cost 1billion yuan. Good deal consider 15:14 < bridge> wow now you even have the ones from discord admin 15:14 < bridge> u really collect fast 15:15 < bridge> ive met deen in person, so ill pass the offer. 15:15 < bridge> Not deen 15:15 < bridge> If you accept, Jupstar will get 1cent 15:15 < bridge> Thats a lot 15:15 < bridge> jupeyy is vegan, they don't eat fingers 15:15 < bridge> Doubt 15:16 < bridge> The video show his fingers 15:17 < bridge> I think he was going to eat 16:27 < bridge> See #2804. I don't understand how this can happen if the servers don't have the same IP though, since the dummy should always connect to the same IP as the main though. 16:27 < bridge> https://github.com/ddnet/ddnet/issues/2804 16:31 < bridge> buffer overflow 😬 16:49 < bridge> never knew it's possible to print n chars from string using printf 16:49 < bridge> ```c 16:49 < bridge> #include 16:49 < bridge> #include 16:49 < bridge> 16:49 < bridge> int main() { 16:49 < bridge> const char *owo = "That's my string, hell yeah"; 16:49 < bridge> 16:49 < bridge> printf("%.*s", 9, owo); 16:49 < bridge> } 16:49 < bridge> ``` 16:49 < bridge> will print 16:49 < bridge> ``` 16:49 < bridge> That's my 16:49 < bridge> ``` 16:49 < bridge> never knew it's possible to print n chars from string using printf 16:49 < bridge> ```c 16:49 < bridge> #include 16:49 < bridge> 16:49 < bridge> int main() { 16:49 < bridge> const char *owo = "That's my string, hell yeah"; 16:49 < bridge> 16:50 < bridge> printf("%.*s", 9, owo); 16:50 < bridge> } 16:50 < bridge> ``` 16:50 < bridge> will print 16:50 < bridge> ``` 16:50 < bridge> That's my 16:50 < bridge> ``` 16:50 < bridge> utf8 gore moment 17:02 < bridge> printf is soooo good 17:07 < bridge> give me a game idea 17:22 < bridge> Weird 17:25 < bridge> huh? i thought it was fixed. i gave a way to reliably replicate that bug did i not? 17:26 < bridge> i reported it on discord and someone made a issue 17:26 < bridge> oh yea 17:26 < bridge> im too dumb to scroll 17:26 < bridge> im too dumb to scroll 17:26 < bridge> didnt see the video in the comments mb 17:28 < bridge> okay hear me out, ddnet.. but written in 100% pure zig 17:29 < bridge> genius game idea 17:29 < bridge> or just 3D ddnet with VR 17:29 < bridge> rustaceans will eat you alive 17:29 < bridge> since his name is TS Freddie the game obviously should be in TypeScript 17:37 < bridge> If I had a game idea, I'd make games 😄 17:42 < bridge> make one please 17:42 < bridge> I always wanted to make a platformer, but I'm shit at the art part 18:22 < bridge> ddnet story edition 18:55 < bridge> oh man there're so many things to learn, C has such a syntax for declaring arrays, dat's cool 18:55 < bridge> ```c 18:55 < bridge> uint8_t foo[] = { 18:55 < bridge> [10] = 12, 18:55 < bridge> [5] = 5, 18:55 < bridge> }; 18:55 < bridge> ``` 19:03 < bridge> @learath2 is there a way how to parse a struct expression(if that's how it's called) using pratt parser? xd 19:52 < bridge> I don't think so. Not sure why but it feels impossible to me. Though I'm not a huge theory enjoyer 19:55 < bridge> Oh actually perhaps it is possible, if you treat the keyword `struct` as a unary operator 😛 19:59 < bridge> i have struct expression like 19:59 < bridge> ``` 19:59 < bridge> Foo { 19:59 < bridge> a: 0x45, 19:59 < bridge> } 19:59 < bridge> ``` 19:59 < bridge> i have struct expression slike 19:59 < bridge> ``` 19:59 < bridge> Foo { 19:59 < bridge> a: 0x45, 19:59 < bridge> } 19:59 < bridge> ``` 19:59 < bridge> i have struct expressions like 19:59 < bridge> ``` 19:59 < bridge> Foo { 19:59 < bridge> a: 0x45, 19:59 < bridge> } 19:59 < bridge> ``` 20:12 < bridge> isn't that gcc extension only ? 20:14 < bridge> apparently not, however ranged init is gcc extension 20:14 < bridge> https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html 20:17 < bridge> It may technically be possible but why do you want to do this? 20:19 < bridge> because i still have to parse them somehow xdd 20:19 < bridge> rn i just check if next token is `{` xd 20:20 < bridge> Usually you use operator precedence parsers to well parse operator languages. A programming language is rarely an operator language 20:20 < bridge> E.g. gcc parses c with a recursive descent parser, with an operator precedence parser bolted on to parse arithmetic expressions faster 20:22 < bridge> it's working right now, so it's good enough 20:33 < bridge> ``` 20:33 < bridge> struct_field_expr : label colon value; 20:33 < bridge> struct_field_exprs: struct_field_expr 20:33 < bridge> | struct_field_exprs comma struct_field_expr 20:33 < bridge> ; 20:33 < bridge> struct_expr : brace_left struct_field_exprs brace_right 20:33 < bridge> ``` 20:35 < bridge> This looks parseable with an operator precedence parser. No consecutive nonterminals or epsilons on the rhs. 20:35 < bridge> 20:35 < bridge> @milkeeycat I guess it is possible atleast so if you can't do it it's a skill issue 20:36 < bridge> Though I did write the grammar in a bus on a phone, so maybe I overlooked something 🙃 20:39 < bridge> time to check how to read bnf notation, i was never paying attention to it xddd 20:40 < bridge> @ryozuki help 20:42 < bridge> > IsImageFormatRgba 20:42 < bridge> 20:42 < bridge> RGBA is an alias for Red Green Blue Alpha? Rgba looks wrong - why the change? :o 20:42 < bridge> > IsImageFormatRgba 20:42 < bridge> 20:42 < bridge> RGBA is an alias for Red Green Blue Alpha, Rgba looks wrong - why the change? :o 20:46 < bridge> We already had a discussion about capitalization of acronyms, the only special cases we allow are `DDNet` and `DDRace` IIRC 20:47 < bridge> Bro is just winging the compiler 20:47 < bridge> Isn't RGBA an acronym? 20:47 < bridge> Tbf iirc we murdered GPU too 20:47 < bridge> yeah, we decided the only acronyms that are allowed to have their prefered spelling are those two 20:48 < bridge> i did! XD 20:48 < bridge> I still can not believe that I let that PR through :pepeW: 20:48 < bridge> #7642 20:48 < bridge> https://github.com/ddnet/ddnet/pull/7642 20:48 < bridge> :kek: 20:49 < bridge> Gfx isn't an ancronym though. It's a contraction 20:50 < bridge> Gfx isn't an acronym though. It's a contraction 20:51 < bridge> Apparently the proper term is abbreviation 20:55 < bridge> Actual acronyms being wrongly capitalized because muH coNsISteNt CaMuHlCasE is insane 20:55 < bridge> Sorry, PascalCase actually 20:57 < bridge> https://federation.edu.au/staff/business-and-communication/communication-guidelines/our-preferred-style/abbreviations,-contractions-and-acronyms 20:57 < bridge> 20:57 < bridge> the definition of Contraction doesnt fit, given the "last letter of the original word" is not `X` but `cs` 20:57 < bridge> it seems to fall both under abbreviation and Acronym? god i should go back to school 20:58 < bridge> I think gfx would be an abbreviation. Acronyms are supposed to be from the initials 20:59 < bridge> i see 21:17 < bridge> did you hear about https://c3-lang.com 21:17 < bridge> did you hear about https://c3-lang.org 21:17 < bridge> did you hear about https://c3-lang.org 21:22 < bridge> `for the next generation` 21:23 < bridge> gerdoe wanna rewrite api once more? :greenthing: 21:23 < bridge> @learath2 that sounds like something for you :kekw: 21:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267925553630154853/image.png?ex=66aa8f30&is=66a93db0&hm=d3ceb3b79d1ef11627690de4e7dd698ceab016a2d3510d4f2f1a728f0d96a718& 21:24 < bridge> ``` 21:24 < bridge> 21:24 < bridge> fault Err 21:24 < bridge> { 21:24 < bridge> OOPS, 21:24 < bridge> LOTS_OF_OOPS 21:24 < bridge> } 21:24 < bridge> ``` 21:24 < bridge> 21:24 < bridge> gigachad error handling 21:28 < bridge> Oh wow, this has a lot of things I was planning for my C evolution 21:30 < bridge> I wish they had implicit this for methods 21:31 < bridge> make C4 with implicit this 21:32 < bridge> ok, maybe skip to C5 :justatest: 21:45 < bridge> where's NSE language 21:45 < bridge> i'll not expand it though xd 22:04 < bridge> still no answer on my #todo.txt :( 22:04 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1267935906661138442/image.png?ex=66aa98d5&is=66a94755&hm=dfc7e8e36674dd316bfe66070d82e9da8c9cb95f6e8127b8834522050e86f564& 22:27 < bridge> watafak 22:27 < bridge> wait i didn't even see it 22:28 < bridge> :feelsbadman: 23:25 < bridge> html skills 23:25 < bridge> top tier 23:43 < bridge> why there is no jxsl 23:45 < bridge> jackass eXtreme static language 23:46 < bridge> credits? 23:47 < bridge> rip 23:48 < bridge> just because jxsl is the defacto standard for web development, does not mean that we should use it here. 23:48 < bridge> it's too powerful 23:49 < bridge> for mortals 23:49 < bridge> ISO jxsl-13 23:49 < bridge> they really did last update 11 years ago smh 23:51 < bridge> hyper stable. 23:53 < bridge> blazingly fast, GenAI and DegenAI, web1-n, flexible, future proof. 23:53 < bridge> need more buzzwords