01:51 <+bridge_> i think chillerdragon should have rights 01:51 <+bridge_> anyone else agree? 02:03 <+bridge_> human ones? yes 02:34 <+bridge_> Just go through the process ¯⁠\⁠_⁠(⁠ツ⁠)⁠_⁠/⁠¯ 06:54 <+bridge_> ofc 08:35 <+bridge_> good morning humans and others 08:37 <+bridge_> good norming 08:37 <+bridge_> -# damn it felt good saying this again.. 08:42 <+bridge_> I recently struggle to choose between struct and array because sometimes i want to access individual fields with a descriptive name and sometimes i want to iterate all 08:42 <+bridge_> i ended up creating arrays with named indecies 08:42 <+bridge_> but i had another crazy idea 08:42 <+bridge_> in scripting languages you have these hashes,objects,table thingies where you can just iterate over the key value pairs if you need it 08:42 <+bridge_> and a C++ struct basically is also a key value pair 08:43 <+bridge_> and if all members are the same type it could theoretically be iterated with sizeof() and pointer increment magic? does that make sense? does anyone do that? xd 08:43 <+bridge_> cursed C 08:45 <+bridge_> @learath2 After more thinking about this, I think the cleanest approach would be to have 2 versions of HIR and one target specific IR. First HIR would be used as input and it would have high level concepts like structs, and second HIR(SIR? Simple IR or LIR. PIR? Plan IR) wouldn't have structs but it would still have most of the instructions from the first HIR, and then this IR would be used for instruction selection. 08:45 <+bridge_> 08:45 <+bridge_> So the pipeline would look like: 08:45 <+bridge_> HIR -> lower high level concepts such as structs to simple HIR instructions, build SIR/PIR -> do instruction selection on SIR/PIR which would build MIR 08:45 <+bridge_> 08:45 <+bridge_> What do you think? 08:46 <+bridge_> this indeed prints 1 2 3 xd 08:46 <+bridge_> https://paste.zillyhuhn.com/M1 08:46 <+bridge_> no way this worked first try hahaha so cursed 08:47 <+bridge_> i might use this 08:47 <+bridge_> why on gods earth would you want to do this :kekw: 08:47 <+bridge_> if i want to iterate all values 08:47 <+bridge_> of a struct 08:48 <+bridge_> just write a proper iterator D: 08:48 <+bridge_> so i dont have to type out every field manually 08:48 <+bridge_> a what now 08:48 <+bridge_> you can write iterators for your own objects? 08:48 <+bridge_> yea i guess 08:48 <+bridge_> but bru that sounds so c++ 08:50 <+bridge_> oh no. C++ in the big 26... :kekw: 09:38 <+bridge_> ew c** 10:07 <+bridge_> Sounds sane-ish, but is it really worth having an entire extra IR that is basically exactly the same as HIR? 10:10 <+bridge_> Ye, that's a fair point, but I think it's better to use types to enforce invariants(not have structs) rather than having asserts everywhere, no? That's a tough choice :\ 10:11 <+bridge_> Ye, that's a fair point, but I think it's better to use types to enforce invariants(not having structs) rather than having asserts everywhere, no? That's a tough choice :\ 10:11 <+bridge_> This assumes there is no padding between struct elements, which is not strictly true. The only guarantee C gives is that the start of a struct is not padded 10:14 <+bridge_> Well, yeah it would be more "proper", then why can't you lose it when going to MIR instead? Are there some optimizations you want to do in HIR? 10:19 <+bridge_> Hhhhm, I didn't think it xddd. I always thought about these translations like "you have structs, you decompose them into primitive instructions, and then that simplified IR is used for instruction selection", maybe I could have some custom logic during lowering which would first decompose the instructions/operand and then lower it to MIR 10:19 <+bridge_> I kinda like it 10:20 <+bridge_> Hhhhm, I didn't think it xddd. I always thought about these translations like "you have structs, you decompose them into primitive instructions, and then that simplified IR is used for instruction selection", maybe I could have some custom logic during lowering which would first decompose the instructions/operands and then lower them to MIR 10:51 <+bridge_> Hhhhm, I didn't think about it xddd. I always thought about these translations like "you have structs, you decompose them into primitive instructions, and then that simplified IR is used for instruction selection", maybe I could have some custom logic during lowering which would first decompose the instructions/operands and then lower them to MIR 11:03 <+bridge_> chillerdragon: C++26 reflection will fix 11:04 <+bridge_> but until then consider either enums for named indices into your array or a helper function to iterate over all entries of your struct 11:49 <+bridge_> @learath2 I'm not sure if there will be any problems during lowering from HIR(with structs) to MIR, but I like this idea and will go with it. Thanks for the help :deen_star: 11:50 <+bridge_> Hey, if there is a problem we didn't foresee, then you'll have a very good reason to introduce one more IR 🙃 11:54 <+bridge_> just one more ir guys I promise just one more 12:12 <+bridge_> hey @learath2 my love, may I ask you a favor? 🙈 12:31 <+bridge_> you can always ask, idk if I can deliver 😛 13:04 <+bridge_> please review the envelope trigger tiles 🙈 I think this is huge, but it may have some technical debt 13:23 <+bridge_> @ryozuki I have data in one format (sqlite3) and want data in another format (json that another program consumes), converted with a python script. what is your setup for LLM coding? I think this may be a fairly well defined problem that LLMs might be able to solve to my satisfaction 13:26 <+bridge_> i use claude with opus 4.5, though with "sub agents" you can use lower cost models for tasks like reviewing or exploring code, and then the costlier one to plan 13:26 <+bridge_> 13:26 <+bridge_> afaik codex doesnt provide this yet 13:26 <+bridge_> 13:26 <+bridge_> iguess i would put the sqlite db in a repo/folder, tell it to analyze it, (mention the sqlite3 tool and it will do it automatically) and write a python script 13:26 <+bridge_> <7.5i> omg hi 13:27 <+bridge_> generally if you tell it to make a implementation plan / explore it and get context first it does way better 13:27 <+bridge_> explore -> plan -> implement 13:30 <+bridge_> I'm not going to spend 200$ for this experiment. so I either find someone with such a subscription or I could try the 20$ subscription on claude.com, unless you tell me that's worthless trying 13:30 <+bridge_> I'll get back to you when I have more specifics or need help 🙂 13:33 <+bridge_> thanks for the hints so far 🙂 13:34 <+bridge_> @heinrich5991 i can do it for you if you want 13:34 <+bridge_> but for the task u mentioned, the 20$ will work 13:34 <+bridge_> you can use opus 4.5 it just will use your "usage" faster 13:34 <+bridge_> but sonnet should do the trick for this 13:34 <+bridge_> i dont even need to tell your comments to the ai 13:34 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1468947936967921768/image.png?ex=6985dfdf&is=69848e5f&hm=d12b152551f3ab94db8ee22777abcedc3a2e8777cb908a5fd873bf591f559a5b& 13:37 <+bridge_> we cooked 13:37 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1468948623092875359/image.png?ex=6985e083&is=69848f03&hm=9963807b89aeb437b2dcafd779f4b762186ba645e59c989fb513c197a073d4ff& 13:39 <+bridge_> idk if u meant only the changes in the pr or previous code is already repeated 13:39 <+bridge_> if its the latest i can change that 13:40 <+bridge_> I question something in #7666 just now: 13:40 <+bridge_> https://github.com/ddnet/ddnet/issues/7666#issuecomment-3853364593 13:40 <+bridge_> :thonk: 13:40 <+bridge_> https://github.com/ddnet/ddnet/issues/7666 13:43 <+bridge_> wait a minute. 13:44 <+bridge_> btw i wanted to share a app i made in flutter and to share on ios you need to pay 99$, you cant easily share a apk like in android and sideload it 13:45 <+bridge_> it just makes me hate apple more 13:45 <+bridge_> btw i wanted to share a app i made in flutter and to share on ios you need to pay 99$/yearly, you cant easily share a apk like in android and sideload it 13:46 <+bridge_> the funniest part is when you try to register and *want* to give them money but they lock you out of the developer program for reasons they cannot even tell you 13:46 <+bridge_> (this has happened in one of my projects) 13:46 <+bridge_> F 13:47 <+bridge_> the funniet part is my gf has a iphone and i "sideloaded" it on her phone via xcode, aka compiling it and "running" it, but apparently that has a expire time too 13:47 <+bridge_> its crazy 13:57 <+bridge_> your comment on that issue doesn't contain a question and it's also quite terse. can you elaborate in that comment? 13:57 <+bridge_> war on general computing 🎉 13:59 <+bridge_> AI didn't impress me yet with your PRs, but it's close. Still required human intervention 14:01 <+bridge_> ok, I did. 14:05 <+bridge_> @remakepower you ask why are we blocked by demo skipping. then you answer your own question with a quote of my message 14:05 <+bridge_> I still don't understand what you want to say… it seems to me that you see some contradiction, but you don't point it out 14:05 <+bridge_> > we already parse every single message from the start to where want to seek to seek. 14:06 <+bridge_> ah, you're saying that we already parse the demo from start 14:06 <+bridge_> I don't think that's the case 14:08 <+bridge_> If that's not, then why the client could display 0.7 skins correctly 14:08 <+bridge_> *after they skip a part of demo. 14:08 <+bridge_> yeah, tho those are simple prs, and i could do better setup, like making it analyze the codebase for style, conventiosn and save it to a file to reference it, etc 14:08 <+bridge_> because the client artificially adjusts the snapshot in demos to contain player information 14:08 <+bridge_> because the client artificially adjusts the snapshot in demos to contain player information in 0.7 demos 14:08 <+bridge_> if u give me a pr idea thats not making accounts i can try 14:09 <+bridge_> ah 14:09 <+bridge_> no 14:09 <+bridge_> there's nothing in the snapshot related to player skin,. 14:09 <+bridge_> add localization to all strings in the editor :WICKED: /s (please dont, no translator would ever do this) 14:09 <+bridge_> xD 14:10 <+bridge_> :thonk: 14:10 <+bridge_> wait 14:10 <+bridge_> i saw you changed the translation system right 14:10 <+bridge_> yeah, we're using weblate now 14:10 <+bridge_> ah yeah we have 14:10 <+bridge_> not really, we just use weblate as a translator UI 14:10 <+bridge_> the translation format hasn't changed (so far) 14:11 <+bridge_> But we can remove those things. 14:11 <+bridge_> idk why 14:11 <+bridge_> > (so far) 14:11 <+bridge_> 14:11 <+bridge_> are we planning to? :o 14:11 <+bridge_> I tested CNetMsg_Sv_KillMsg 14:11 <+bridge_> I'd love to get away from our home-rolled translation formats 14:11 <+bridge_> what format you thinking? 14:11 <+bridge_> I'd love to get away from our hand-rolled translation format 14:11 <+bridge_> a lot of projects use JSON 14:12 <+bridge_> that's the hard question 14:12 <+bridge_> did you port to sdl3 yet 14:12 <+bridge_> that's not a translation format on its own, you'd need to specify the schema 14:12 <+bridge_> I think even if they don't, nothing gets worse :) 14:14 <+bridge_> https://github.com/ddnet/ddnet/pull/10246 14:14 <+bridge_> current PR 14:14 <+bridge_> I'd guess the hard work is the testing, not producing the code 14:15 <+bridge_> yeah 14:15 <+bridge_> translations can sometimes be worse than no translations, e.g. if the translations are wrong 14:15 <+bridge_> last time i tried sdl3 wasnt on gentoo anyway 14:15 <+bridge_> but thats probs a long time ago 14:16 <+bridge_> it exists now 14:20 <+bridge_> :thonk: 14:21 <+bridge_> ah ok 14:21 <+bridge_> I got it. 14:25 <+bridge_> is there even anything other than gettext (and frameworks like qt and wx that implement their own gettext) available for c++ 14:25 <+bridge_> ignoring self-rolled solutions 14:28 <+bridge_> in the javascr*pt world there's i18next but that's not for c++ 14:28 <+bridge_> would be nice if whatever we use can be exported by weblate directly, it's annoying to have a transform in the middle 15:06 <+bridge_> idk, do the material layer i.g. 😄 just for fun 15:07 <+bridge_> or water 15:25 <+bridge_> gettext or maybe something like fluent (which will power JS internationalization, AFAIUI)? 15:25 <+bridge_> gettext is annoying because we'd probably have to use a third party library to be able to change language during runtime 15:29 <+bridge_> xD 15:29 <+bridge_> 54k lines is crazy 15:31 <+bridge_> i dont have clang-format 20 15:31 <+bridge_> only 21 15:40 <+bridge_> :OMEGALUL: :OMEGALUL: :OMEGALUL: :OMEGALUL: 15:41 <+bridge_> :owo: 15:43 <+bridge_> <01000111g> I don't even know if localizing the editor is a good idea. This way noone can help in the mapping channel anymore, if you dont even have the same word for obscure things like paralax 15:44 <+bridge_> ¯\_(ツ)_/¯ 15:45 <+bridge_> feel free to close the pr if its unwanted, i just left some heavy work done 15:45 <+bridge_> i agree its a double edged sword 15:45 <+bridge_> but usually accesibility is better ig 15:45 <+bridge_> maybe translating it makes them ask less 15:46 <+bridge_> also idk an spanish translation of paralax so maybe some words are just same 16:14 <+bridge_> yo is there any discussion about gameskins being shared to the server&client? i mean it would be cool to see other peoples gameskins 16:16 <+bridge_> this wouldn't introduce any backwards incompatibility and they can be treated just as skins with an external db and reference by name 16:18 <+bridge_> it probably wont work in some cases, where it needs `Localizable` as well, so it's not even working 16:19 <+bridge_> yeah, make that a feature so I can confuse my enemies by switching the grenade and laser sprite 16:19 <+bridge_> that would be amazing 16:19 <+bridge_> when we're at it, add a skin shop or loot boxes 16:19 <+bridge_> huh? 16:20 <+bridge_> why the sarcasm tho? it would be the same as normal tee skins 16:37 <+bridge_> ddnet-rs allows that 16:39 <+bridge_> theres a lot less good gameskins unfortunately 19:34 <+bridge_> Plenty of good ones, just have a channel to submit new ones and be more strict when adding them 19:37 <+bridge_> At the very least, having a reliable source of gameskins would be nice, one that doesn't just vanish because someone decided to shut it all down 21:17 <+bridge_> i would fix it but its not wanted anyway 22:03 <+bridge_> Yeeeah, I think keeping the editor one language isn't the worst idea 22:24 <+bridge_> Those understand English decide for those who don't 22:26 <+bridge_> just some important parts would be enough 22:26 <+bridge_> at least tile explainations and the most basic buttons