00:04 <+bridge> I could perhaps be convinced to drop ogl1 if we keep server support for the last version that supports ogl1 indefinitely 00:10 <+bridge> I think Jupstar isn't against properly engineered backcompat 00:10 <+bridge> but what we have isn't properly organized 00:12 <+bridge> it's all over the codebase 00:12 <+bridge> instead of inside a backcompat module 00:18 <+bridge> @gerdoe 00:19 <+bridge> oops, unintended ping 00:22 <+bridge> it's on my to do list, but not very high. quic/accounts are definitely higher 00:23 <+bridge> How would a backcompat module work if the code is scattered everywhere as it is. 00:27 <+bridge> it would take the network traffic and translate it to old network traffic 00:27 <+bridge> I built a 0.6-0.5 using that pattern 00:27 <+bridge> the code almost entirely resided in one module 00:29 <+bridge> 0.5 😯 00:29 <+bridge> Anyone uses that? 00:29 <+bridge> past tense 00:30 <+bridge> ? 00:30 <+bridge> he did that most likely 10+ years ago, I'd guess 00:30 <+bridge> ah I guess maybe 00:31 <+bridge> https://github.com/heinrich5991/teeworlds/blob/eedc8065b0340ad5659fab2b91b09b8f94354336/src/proxy/proxy/0.5-0.6/proxy_cl05_srv06.cpp 00:31 <+bridge> 10 years ago seems correct 00:32 <+bridge> I should gamble 00:32 <+bridge> The massive debt of backcompatability already in the codebase makes me uncomfortable often but it's not my issue I guess. 00:33 <+bridge> Massive is a little overstatement 00:33 <+bridge> I don't think it's a debt of backcompat, I think it's a debt of spaghetti code ^^ 00:34 <+bridge> <0xdeen> Anyone want to submit https://github.com/ddnet/ddnet/pull/8538 ? It currently breaks nightly build 00:35 <+bridge> Well I don't think this is in small part due to back compatability requirements. Huge refactorings need to preserve old functionality 00:36 <+bridge> Also the nature of open source dev where most people don't want to take long term responsibility for large sections of the code 00:36 <+bridge> done 00:44 <+bridge> I actually don't know of any other multiplayer games that keep compatability for mismatched server/client versions. Does anyone know of any? 00:44 <+bridge> 00:44 <+bridge> I guess it is very nice that you can have a 4 year old client and be confident you can play on any server in the list. 01:25 <+bridge> @ryozuki I just stumbled upon this very old commit of mine: https://github.com/heinrich5991/libtw2/commit/76355d4a34870b336d3adb48cf61689a5281d504 01:26 <+bridge> `IpAddr` would only become stable in rust 1.7.0 😄 01:26 <+bridge> lol 03:36 <+bridge> The minecraft community is big on version translation. But I guess that is because the actual official game it self just breaks versions all the time xd 03:37 <+bridge> @totar: it’s just sad that latest ddnet does not even have the full list :P 03:39 <+bridge> Minecraft is quite interesting but that's a unique situation where only the server is controller by the developers so they can't control the client at all. 03:40 <+bridge> In a way ddnet is the same but we still add plenty of client features that depend on server functionality so it's not really the same 03:42 <+bridge> Was that proxy ever in use? How does it work? Does every user need one to connect to a server? Or can a server Hoster slap it in front of a server? If every user needs it it’s a bit annoying. And I guess servers have no full proxy support so they would think all players joined through the proxy are coming from one ip address. 03:53 <+bridge> What was the accident xd 04:02 <+bridge> Amazing thanks 04:08 <+bridge> We test the cuirect and stuff like that logic already in unit tests right? So what’s missing is probably generating a screenshot and doing a image diff. 04:11 <+bridge> What why? ssh is great? I don’t get it 04:12 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257519189594341376/Screenshot_20240701-163218.png?ex=6684b382&is=66836202&hm=ea286d6b3d752da868b625d7b939ab6ab29c13878b22976038662702901de527& 04:17 <+bridge> Oh that’s good to know! Thanks for sharing. I never had the problem that the WiFi website does not pop up but it might happen some day. Makes a lot of sense never thought about it. 04:23 <+bridge> Xd 04:26 <+bridge> ?xd 04:31 <+bridge> Yikes 04:32 <+bridge> Debian BTW 08:01 <+bridge> Debian FTW 08:23 <+bridge> Debian was my first big love 08:23 <+bridge> But its to old 🥲 08:23 <+bridge> But its too old 🥲 08:43 <+bridge> morning 08:43 <+bridge> gentoo ftw 08:49 <+bridge> mornin! 08:49 <+bridge> I Use arch btw 08:52 <+bridge> https://ersei.net/en/blog/fuse-root 08:58 <+bridge> @scrumplex are u around for some nixos troubleshooting 08:58 <+bridge> im a noob 09:13 <+bridge> I know the basics - and scrumpi taught me sum. Maybe i can Help 09:16 <+bridge> On phone atm but here's the gist 09:16 <+bridge> I have a flake that I wanna use as my system config https://github.com/ewancg/shit 09:16 <+bridge> Now put /boot on cloud too. Write an efi driver for cloud fs 09:16 <+bridge> in nixos dir 09:17 <+bridge> ``` 09:17 <+bridge> ewan@machine ~/shit (main)> nixos-rebuild --flake ./nixos#machine build 09:17 <+bridge> building the system configuration... 09:17 <+bridge> error: 09:17 <+bridge> … while calling the 'head' builtin 09:17 <+bridge> 09:17 <+bridge> at /nix/store/g83ji892byw4wd81rmb14v69yrhq408s-source/lib/attrsets.nix:1575:11: 09:17 <+bridge> 09:17 <+bridge> 1574| || pred here (elemAt values 1) (head values) then 09:17 <+bridge> 1575| head values 09:17 <+bridge> | ^ 09:17 <+bridge> 1576| else 09:17 <+bridge> 09:17 <+bridge> … while evaluating the attribute 'value' 09:17 <+bridge> 09:17 <+bridge> at /nix/store/g83ji892byw4wd81rmb14v69yrhq408s-source/lib/modules.nix:809:9: 09:17 <+bridge> 09:17 <+bridge> 808| in warnDeprecation opt // 09:17 <+bridge> 809| { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value; 09:17 <+bridge> | ^ 09:17 <+bridge> 810| inherit (res.defsFinal') highestPrio; 09:17 <+bridge> 09:17 <+bridge> (stack trace truncated; use '--show-trace' to show the full trace) 09:17 <+bridge> 09:17 <+bridge> error: getting status of '/nix/store/pz24qq8rhnc918bg0n31xpli9fs3vz82-source/.config': No such file or directory 09:17 <+bridge> ``` 09:17 <+bridge> It's evil 09:18 <+bridge> Which File exactly ? 09:21 <+bridge> Looks Like a Syntax Error or Typo in one of your modules 09:21 <+bridge> Are you correctly importing it ? 09:25 <+bridge> Ah wait, i dont think you can invoke configuration.nix INSIDE a Home Module 09:28 <+bridge> On phone myself so hard to Doublecheck lmao 09:36 <+bridge> https://codeberg.org/melon/.dotfiles/src/branch/main/hosts/melon/flake.nix 09:36 <+bridge> 09:36 <+bridge> Thats how i do it, have to keep on working 09:36 <+bridge> 09:36 <+bridge> @mpft :pepeangryping: 09:37 <+bridge> https://codeberg.org/melon/.dotfiles/src/branch/main/hosts/melon/flake.nix 09:37 <+bridge> 09:37 <+bridge> Thats how i do it, have to continue working 09:37 <+bridge> 09:37 <+bridge> @mpft :pepeangryping: 09:37 <+bridge> ya i mean 09:37 <+bridge> im not sure it's an issue w my flake necessarily 09:37 <+bridge> 09:38 <+bridge> ppl seem to have a similar issue with obrcene fixes 09:38 <+bridge> ppl seem to have a similar issue with like 3 different proposed obscene fixes 09:38 <+bridge> i tried any that were applicable and had no luck 09:42 <+bridge> So ist seems to be an issue with git beeing annoying lmao - maybe mv out the .git folder to be sure its not that, i dont remember running into that issue tho. 09:48 <+bridge> nop 09:48 <+bridge> need git metadata for the flake anyway 09:59 <+bridge> chillerdragon: both worked. no, the proxy was compiled into the server, but it roughly only had one intersection point 10:00 <+bridge> chillerdragon: I didn't check the ddnet discord, I did not make an explicit decision not ot 10:00 <+bridge> chillerdragon: I didn't check the ddnet discord, I did not make an explicit decision not to 10:01 <+bridge> ChillerDragon: ssh had a "anyone can log in as root" vulnerability yesterday. patch your server! 10:17 <+bridge> wb heinrich 10:32 <+bridge> thanks 10:33 <+bridge> holy moly. does debian even have patches for that? 10:36 <+bridge> yes 10:36 <+bridge> I already applied them yesterday 10:37 <+bridge> `OpenSSH_9.2p1 Debian-2+deb12u3, OpenSSL 3.0.13 30 Jan 2024` 10:37 <+bridge> LGTM 10:37 <+bridge> is `systemctl restart sshd` enough? 10:37 <+bridge> ssh -v localhost 10:38 <+bridge> smart 10:39 <+bridge> ye lgtm 10:39 <+bridge> the 3 in the end is the fix i assume 10:39 <+bridge> yeah 10:39 <+bridge> well it sounds like they just disabled some code xd 10:39 <+bridge> probably better to update as soon as they apply the real patch 10:40 <+bridge> sounds good to me 10:41 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257617137892069446/image.png?ex=66850ebb&is=6683bd3b&hm=cedb9d0759defd09869c87b56496602266dbc5f91efaea287e99faf612274815& 10:41 <+bridge> my laptop is vulnerable 10:56 <+bridge> My servers ssh version is before the regresshion, so it's safe without upgrading 😄 10:58 <+bridge> "safe" 10:58 <+bridge> xxxxxxxxD 11:05 <+bridge> oh boi 4k players online right now 11:06 <+bridge> i basically didnt open my client this year didnt know the game is still very much alive 11:14 <+bridge> safe from this one specific critical bug, to be more exact 😄 11:14 <+bridge> i just realize 11:15 <+bridge> our company really like pushing releases when i'm not at work 11:15 <+bridge> maybe whenever I'm at work thing are always not ready 11:15 <+bridge> @heinrich5991 when you get around to looking at atleast the teehistorian files local to that server, I can finally consider upgrading and rebooting that server 11:16 <+bridge> local to what server? learath2.info? 11:16 <+bridge> yes 11:16 <+bridge> it has full disk encryption with a handrolled initramfs script, there is a chance that if I upgrade it and something goes wrong I might lose all the data on it 😄 11:21 <+bridge> the script I sent you was buggy, right? 11:29 <+bridge> u didn't quit yet? 11:32 <+bridge> I updated my server, but sshd doesn't restart anymore. I started sshd manually again. but I'm also scared of rebooting ^^ @learath2 11:48 <+bridge> Yes, I think I gave you a full log. It crashes for some reason and dumps just a list of all the files 11:48 <+bridge> It works just fine in a smaller folder though 11:51 <+bridge> ah thanks 11:51 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257634678907605123/image.png?ex=66851f11&is=6683cd91&hm=eb06d163c4e35d3bb414e69d57d1b46368da3c389f27ecb770522e811dd0892c& 11:51 <+bridge> quality software 11:57 <+bridge> name and shame pls 12:00 <+bridge> Grafana Loki 12:41 <+bridge> Why Ukrainian Novice is passworded 🙁 12:41 <+bridge> @heinrich5991 it seems the double message doesn't happen anymore 12:42 <+bridge> Wow, I always wanted to meet a true Englandian 12:46 <+bridge> just the beta server 12:48 <+bridge> Just unhardcode it, what's the problem 12:52 <+bridge> <0xdeen> I don't see it, is it? 12:54 <+bridge> deen 12:54 <+bridge> I wanna host a trashmap server in usa 12:55 <+bridge> gerdoe u the troll 12:55 <+bridge> :greenthing: 12:56 <+bridge> i thought timakro hosts then 12:56 <+bridge> i thought timakro hosts them 12:56 <+bridge> ya 12:56 <+bridge> ddnet service tho 12:56 <+bridge> ah 12:56 <+bridge> 12:57 <+bridge> i like how youtube recommends me to watch videos i have already watched 12:57 <+bridge> (trance dj mixes) 12:58 <+bridge> 😃 12:59 <+bridge> wanna listen one 12:59 <+bridge> How long is it 12:59 <+bridge> quite a short 12:59 <+bridge> half an hour 13:00 <+bridge> u can send it and I'll listen tomorrow 13:00 <+bridge> it's past my bedtime 13:00 <+bridge> xd 13:00 <+bridge> https://www.youtube.com/watch?v=f6F9Ffc_kx0 13:01 <+bridge> 125p in ddnet SUI 13:01 <+bridge> 128p in ddnet SUI 13:05 <+bridge> I'll fork the DDNet client and remove EVERYTHING /hj 13:05 <+bridge> /hj? 13:11 <+bridge> <0xdeen> @fokkonaut Crashed: https://github.com/ddnet/ddnet/pull/8542#issuecomment-2202783530 I'll disable votes for now 13:12 <+bridge> Handjob obviously 13:15 <+bridge> Good thing I don't use ssh 13:15 <+bridge> half-joking 13:21 <+bridge> its me about to steal components from client side code into server side 13:22 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257657521213145149/image.png?ex=66853457&is=6683e2d7&hm=ed6a33c06518cf0abfa34f0809a006d4212cf343058f2bccbbc0b174899894d7& 13:42 <+bridge> Me Reading your commits :pepeW: :monkaStop: :poggers2: :pepe_holy: :justatest: :MonkaS: :pepe_ew92: :kek: :gigachad: 14:07 <+bridge> Ok, voting can happen yea 14:07 <+bridge> <0xdeen> I think masterserver needs to allow larger json @heinrich5991 ? `2024-07-02 14:00:02 E register/6/ipv4: error response from master: 400: Request body deserialize error: EOF while parsing a value at line 1 column 16383` 14:07 <+bridge> <0xdeen> Happened with ~110 players online 14:07 <+bridge> 110 again right now 14:08 <+bridge> and it works nice 14:09 <+bridge> server disappeared 14:09 <+bridge> <0xdeen> Found it, fixed in the PR 14:09 <+bridge> from list only 14:09 <+bridge> Oh, cool 14:09 <+bridge> ty! 14:10 <+bridge> <0xdeen> Please fix the voting crash though, it seems to happen with a 0.7 player because of the playermapping 14:10 <+bridge> Yes, on it 14:14 <+bridge> https://github.com/ddnet/ddnet/pull/8542/commits/db16907d8cff79958f42e1c0dedfc7361b5e7b0c 14:22 <+bridge> @0xdeen If u want u can set the mapupdaterate to 5, will be quicker to update the map 14:23 <+bridge> but i think for performance it can stay at 15 14:23 <+bridge> dunno 14:23 <+bridge> or 10, whatv 14:32 <+bridge> why does it even have a update rate? 14:33 <+bridge> cuz why would you run it every tick 14:33 <+bridge> useless 14:33 <+bridge> why doesnt it update based on e.g. player movement 14:33 <+bridge> why dont u make ur own xd 14:33 <+bridge> i have my own 14:34 <+bridge> is it based on e.g. player movement 14:34 <+bridge> let's see, havent read that code in \~6 years 14:34 <+bridge> xD 14:34 <+bridge> then probably not 14:35 <+bridge> ChillerDragon: to find out which license to use, where did you copy the code from? probably teeworlds 0.7? 14:38 <+bridge> seems it simply checked the player distance on the fly 14:38 <+bridge> was enough for 256 players on a cheap vps 14:39 <+bridge> so u have ddnet code 14:39 <+bridge> xd 14:39 <+bridge> it was for fng vanilla based 14:42 <+bridge> https://github.com/Jupeyy/dd-pg/blob/af04025138549ef64d70a9b0b748b18654571fec/game/shared-game/src/entities/character/pos.rs 14:42 <+bridge> this would be even better 14:42 <+bridge> could directly also be used to solve the O(n²) problem 14:42 <+bridge> without breaking physics 14:43 <+bridge> rust is so ugly 14:43 <+bridge> :kek: 14:43 <+bridge> c++ ftw 14:43 <+bridge> i guess porting 165 lines of rust code to cpp isnt the world 14:44 <+bridge> > `HashMap`, `LinkedHashMap`, `Pool` 14:44 <+bridge> not trivial though, I'd say 14:45 <+bridge> sure, pool is just to save heap allocs, would also work fine with heap allocs or stack allocations (esp. if max. number of clients are known at compile time) 14:45 <+bridge> linkedhashmap, i dunno why i used that xd 14:46 <+bridge> maybe at some points i was iterating over the entries 14:46 <+bridge> but doesnt look like i still do that 14:48 <+bridge> and for ddnet physics it would make sense to use a btreeset instead of hashset to keep the ID order correct 14:48 <+bridge> (which is only interesting when to emulate the for i \< MAX\_CLIENTS loops in the gamecore) 15:02 <+bridge> How does a hashset solve the O(n^2) issue? Do you use a position hash that hashes nearby people in the same bucket? 15:03 <+bridge> yea 0.7 I think and a bit of huffman-py and TeeAI xd 15:03 <+bridge> And then what? I just copy the license? 15:04 <+bridge> Huffman-py is also bsd and TeeAi is gpl 15:05 <+bridge> basically: 15:05 <+bridge> i calculate the tile of the tee (a tee is *almost* 1 tile, so that fits quite nice) and add its id to a hashset 15:05 <+bridge> 15:05 <+bridge> later in character core: 15:05 <+bridge> i get all ids in a certain radius (so basically all tiles in that radius) 15:05 <+bridge> the "real" radius calculation is still done 15:05 <+bridge> just for fewer entries 15:05 <+bridge> since the tile based radius check ofc isnt perfect 15:06 <+bridge> @heinrich5991 I also took the packer code 1:1 15:06 <+bridge> whats the problem here? 15:06 <+bridge> im ootl 15:06 <+bridge> when quadtrees? 15:06 <+bridge> i think that approach is better 15:06 <+bridge> And swarfy also looked at the TeeAI code for his type script Huffman 15:06 <+bridge> Ah the grid approach, where does a hashmap come in? 15:06 <+bridge> bcs updating the quadtree isnt really cheap 15:06 <+bridge> simply the tile index 15:07 <+bridge> @heinrich5991 you just wanna merge licenses together or what? At which point is a rewrite enough to decouple the license? What license is teeworlds even? Isn’t that bsd like too? How would I give proper credit? 15:08 <+bridge> Ah to get what character is on the tile 15:08 <+bridge> yeah 15:08 <+bridge> in "normal" case this is very fast, since tees usually dont stack 15:09 <+bridge> in worst case it's as bad as the current O(n²) plus the overhead of this idea 15:09 <+bridge> so in practice even a bit worse 15:09 <+bridge> ChillerDragon: teeworlds has zlib license. I just used that instead of your bsd license, because you wanted a simple solution. you're allowed to look at other code, preferably only to figure out how it works. copying the code requires you to stay with the original license (or a compatible one) though. you could e.g. create a new implementation by just looking at docs, e.g. libtw2 docs (this is one reason I created them) 15:11 <+bridge> is TeeAi mine? 15:11 <+bridge> gpl pog 15:11 <+bridge> (btw you are right, a grid works much better than a quadtree with the amount of moving things we have) 15:11 <+bridge> Yes you said assume it’s gpl 15:11 <+bridge> true 15:11 <+bridge> It has no license file 15:11 <+bridge> ill add the license 15:12 <+bridge> done 15:12 <+bridge> I guess I need this license in a bunch repos too now 15:12 <+bridge> Took me two days to rewrite Huffman-py to get rid of gpl in twnet\_parser 15:12 <+bridge> xd 15:13 <+bridge> And now heino says I’m violating licenses again -.- 15:13 <+bridge> is twnet_parser closed source 15:13 <+bridge> no 15:13 <+bridge> No but I want it to be bsd 15:13 <+bridge> https://en.wikipedia.org/wiki/Clean_room_design 15:13 <+bridge> It’s on Gitlab 15:13 <+bridge> woops, wrong link, but also good 15:13 <+bridge> https://gitlab.com/teeworlds-network/twnet_parser/ 15:14 <+bridge> why not use gpl 15:14 <+bridge> I want freedom for my users 15:14 <+bridge> GPL is good for users, bad for devs 15:14 <+bridge> Freedom includes closed source and mixing with other licensed code 15:15 <+bridge> thats what gpl does best for users 15:15 <+bridge> closed source removes freedom for users tho 15:15 <+bridge> > MIT/X license, BSD licenses (in the three-clause and two-clause forms, though not the original four-clause form), MPL 2.0, and LGPL, are GPL-compatible. 15:16 <+bridge> 0BSD, best for devs, good for users, but can be bad if used in closed source 15:16 <+bridge> The users of a network protocol library might want to build a closed source project. If they can not do it because it’s gpl they are less free. 15:16 <+bridge> He wants freedom for HIS users, not his users users 😄 15:16 <+bridge> only best for devs wanting to create closed-source projects 15:16 <+bridge> for devs wanting to create open-source software, gpl can be better 15:17 <+bridge> they have to know about limitations of GPL 15:17 <+bridge> but if you want to support devs wanting to create closed-source projects, then gpl is indeed incompatible with it 15:17 <+bridge> that alone makes it worse 15:17 <+bridge> I like code with no strings attached. Free to copy paste, edit. No obligations what do ever. 15:17 <+bridge> then why do you use the bsd license? 15:17 <+bridge> i guess we value different things 15:17 <+bridge> I like code with no strings attached. Free to copy paste, edit. No obligations what so ever. 15:17 <+bridge> that requires some things 15:17 <+bridge> I thought that’s the one xd 15:17 <+bridge> chiller use 0BSD 15:18 <+bridge> Finally something I kinda agree with chillerdragon on 15:18 <+bridge> use C0 15:18 <+bridge> Lmao 15:18 <+bridge> lmao 15:18 <+bridge> CC0 sucks bcs europe rights xd 15:18 <+bridge> 0BSD is my new love 15:18 <+bridge> xd 15:18 <+bridge> agpl is my love 15:18 <+bridge> https://opensource.org/license/0bsd 15:18 <+bridge> also coolest logo 15:18 <+bridge> also an accepted open source license 15:18 <+bridge> reference? I don't think so 15:18 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257686941105651763/AGPL-1.png?ex=66854fbd&is=6683fe3d&hm=b85ab9619f6d953afd90fefd52b5f34b8f620372a326b65da0861b04294e244f& 15:18 <+bridge> CC0 is compatible with europe's right. are you referring to "public domain" maybe? 15:19 <+bridge> uhrheberrecht 15:19 <+bridge> you cannot really do public domain 15:19 <+bridge> urheberrecht 15:19 <+bridge> 0BSD lgtm might use it in the future 15:19 <+bridge> bsd 3 clause is do whatever you want but keep this notice, and don't use my name as marketing ALSO YOU CANT SUE ME IF THIS DESTROYS THE WORLD 15:19 <+bridge> CC0 is not public domain fully but its like public domain 15:19 <+bridge> use llvm license 15:19 <+bridge> ew 15:19 <+bridge> the llvm dev live reaction: 15:19 <+bridge> the only thing i hate about llvm is the license and that they provide a C api on usage effort only 15:19 <+bridge> xd 15:20 <+bridge> > Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 15:20 <+bridge> > Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 15:20 <+bridge> it must also go into the binary and you cannot remove attribution 15:20 <+bridge> llvm's license actually the only thing why it got so popular 15:20 <+bridge> "keep this notice" 15:20 <+bridge> already way worse than teeworlds' zlib license 15:20 <+bridge> we could have many gcc based compilers if not gpl 15:20 <+bridge> 0BSD or Apache license for me 15:20 <+bridge> well it got popular because apple uses it 15:20 <+bridge> its funded by apple too 15:20 <+bridge> and because gpl was anti-extensions 15:20 <+bridge> also because the code is more readable 15:20 <+bridge> No way you tought of licenses while creating docs xd 15:20 <+bridge> and modular 15:20 <+bridge> than gcc 15:20 <+bridge> i mean its more popular than you think 15:21 <+bridge> gcc u mean 15:21 <+bridge> yes, gcc 15:21 <+bridge> I did. I wanted libtw2 to be a clean-room implementation 15:21 <+bridge> llvm is rly popular yes 15:21 <+bridge> its a good piece of software 15:21 <+bridge> compiler wise its the epitome of research imho 15:21 <+bridge> like you can't make proprietary software if u set gpl as license 15:21 <+bridge> specially MLIR 15:21 <+bridge> llvm would die at its start 15:21 <+bridge> or someone would remake it 15:21 <+bridge> i dont think its true 15:21 <+bridge> gcc is gpl and its widely used 15:22 <+bridge> "way worse" is very subjective, the zlib license only allows binary distributions to not include the notice, that's all that's extra 15:22 <+bridge> gcc is gpl but u can compile propietary software btw 15:22 <+bridge> i don't really see many gcc extensions made by companies 15:22 <+bridge> the compiled stuff has nothing to do with gcc 15:22 <+bridge> im talking about tooling, not about compiling foreign programs 15:22 <+bridge> nvcc uses gcc 15:22 <+bridge> nothing subjective here. chillerdragon said he wanted the least restrictions for users. I'm not sure what you're talking about 15:22 <+bridge> intel's compiler is moving to llvm 15:23 <+bridge> cuz intel suxs 15:23 <+bridge> ofc companies will prefer llvm now 15:23 <+bridge> but u can get success with gpl 15:23 <+bridge> blender is GPL 15:23 <+bridge> blender is not llvm xd 15:23 <+bridge> The "way" is what makes it subjective. It is worse, exactly 1 clause worse 15:23 <+bridge> im talking about llvm and only llvm compilant tools 15:23 <+bridge> that wasnt the point 15:24 <+bridge> then let's say "it's obviously worse" 15:24 <+bridge> fair. then let's say "it's obviously worse" 15:24 <+bridge> did i say gpl kills every software it sticks to 15:24 <+bridge> i said llvm would die if used gpl 15:24 <+bridge> llvm license allowed stuff like nvvm to be born 15:24 <+bridge> nvvm is propietary blegh 15:24 <+bridge> https://docs.nvidia.com/cuda/nvvm-ir-spec/ 15:24 <+bridge> i like amd tends to be more open 15:25 <+bridge> I kinda doubt this. Have you ever touched the gcc codebase? 15:25 <+bridge> Imagine there was some bullshiting going on about antibot being closed source because teeworlds was super infectious lgpl++ which if linked against a struct of same shape statically or dynamically or even just through a reverse proxy forces you to publish source code as rom disk on request within 24 working days 15:26 <+bridge> ye and it stinks i know 15:26 <+bridge> llvm is easier to contribute and use thats the simple reason 15:26 <+bridge> I think only 10 people on earth would be able to do anything with that codebase, in comparison llvm is very pretty 😄 15:26 <+bridge> and its made to be used for other stuff than C based langs 15:26 <+bridge> could be prettier though 15:26 <+bridge> i think the effort can be commended 15:27 <+bridge> do u know how big llvm code is 15:27 <+bridge> its insane 15:27 <+bridge> ye i know 15:27 <+bridge> thats why im saying that xd 15:27 <+bridge> and they do various techniques so the code isnt that big 15:27 <+bridge> like having special file formats to describe CPUs 15:27 <+bridge> and tablegen 15:28 <+bridge> i think somebody currently makes llvm like clearer source behind the curtains 15:28 <+bridge> 0bsd is the no clout version of bsd licenses. I don't think there is any point allowing people to use my code without so much as a credit, but that's just me 15:28 <+bridge> that uses llvm ir 15:29 <+bridge> Someone should make a hosting aware version of bsd like agpl is to gpl 15:30 <+bridge> I appreciate credit. But if it’s legally forced it’s cringe. I prefer credit on a nice to have basis. Crediting is imo worth more and more fun to receive and give if it’s not something you MUST do. 15:32 <+bridge> ok chiller 15:32 <+bridge> all software you made 15:32 <+bridge> is made by me 15:32 <+bridge> then 0bsd/cc0 are what you want 15:32 <+bridge> So it’s gpl? 15:32 <+bridge> ? 15:32 <+bridge> xD 15:32 <+bridge> u require no attribution 15:32 <+bridge> so all you made 15:32 <+bridge> is made by me 15:33 <+bridge> All software you make is gpl 15:33 <+bridge> and ill make a web 15:33 <+bridge> saying its made by me 15:33 <+bridge> If you claim mine is yours will it become gpl? 15:33 <+bridge> not technically true 15:33 <+bridge> can u imagine it? 15:33 <+bridge> maybe i can appropiate ur software 15:33 <+bridge> claim its mine 15:33 <+bridge> and make it gpl 15:33 <+bridge> if u want to give all rights then u should give me the right to relicense 15:34 <+bridge> Im scared of being unable to access my own because I went to permissive xd 15:34 <+bridge> i take ur all rights given software and make it my own, any changes and make it agpl 15:34 <+bridge> why u scared, u wanted all freedom 15:34 <+bridge> u dont want to take away my freedom right? xd 15:35 <+bridge> I would also like to have the freedom to use my own code however I want and claim it’s mine xd 15:35 <+bridge> I actually don't know what happens if you take 0bsd/cc0/mit0 licensed code and release it under a more restrictive license 15:35 <+bridge> you can always take any piece of open-source software (minimal restrictions apply) and turn it agpl for modifications 15:35 <+bridge> you are certainly allowed to do so, but idk what happens then 😄 15:35 <+bridge> https://en.wikipedia.org/wiki/Paradox_of_tolerance 15:35 <+bridge> then it's just released under both licenses 15:35 <+bridge> Well that’s why I just try not to think to hard about it. Xd 15:36 <+bridge> my freedom is to make stuff agpl :TrollDespair: 15:36 <+bridge> How do I prove that my 0bsd copy of it is actually released before the agpl version and that I didn't steal the agpl version? 15:36 <+bridge> also i would always use a license that protects from patent trolls 15:36 <+bridge> aplg and apache do it iirc 15:36 <+bridge> the same way you prove that something is your work and not someone elses 15:37 <+bridge> I see 15:42 <+bridge> and who defines where tolerance starts and ends? 15:43 <+bridge> > Deciding whether to tolerate an item involves a balancing of reasons, for example when we weigh the reasons for rejecting an idea we find problematic against the benefit of accepting it in the name of social harmony, and it is in this balancing of reasons that the paradox of tolerance arises.[9] Most formulations of tolerance assert that tolerance is a reciprocal act, and the intolerant need not be tolerated. This necessitates drawing a limit bet 15:43 <+bridge> thats the paradox jupstar 15:44 <+bridge> sure, but i bet you and me are also intollerant. 15:44 <+bridge> 15:44 <+bridge> Most ppl seem to be ok with closed source software, we defs arent 15:44 <+bridge> so should we be excluded? xd 15:44 <+bridge> xd 15:44 <+bridge> ill go live in a cave 15:44 <+bridge> monk 15:44 <+bridge> and bald 15:44 <+bridge> epyc 15:46 <+bridge> white jupeyy < purple jupeyy 15:46 <+bridge> yeah sry, i have no discord access here 15:47 <+bridge> gotta live with that xd 15:47 <+bridge> Can i Join? I Take Care of fishies 15:48 <+bridge> chillerdragon: which color do i have for u xd 15:48 <+bridge> u have orange for me 15:50 <+bridge> I use two chat apps atm 15:50 <+bridge> Which ever has the better order of chat messages and best success rate at displaying message content 15:50 <+bridge> you have 24 matrix sessions xDD 15:51 <+bridge> "FluffyChat ios" 15:51 <+bridge> apple nobo 15:51 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257695132027981904/ima_e4a2c8f.png?ex=6685575e&is=668405de&hm=5acd51cef21c80328292bc311aa53bf93f14af4fb3cc1b0b89506e4fe9f2f804& 15:51 <+bridge> Yes 15:51 <+bridge> Because I am too lazy to debug irc 15:51 <+bridge> And possibly too tipsy to open laptop anyways 15:52 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257695273690599455/ima_02dfb55.png?ex=66855780&is=66840600&hm=b0cc56efd242d4c394f949cad3d559aaea12d29c967aed408966c9aa2bbf3d73& 15:52 <+bridge> Did you fix this already? :O 15:52 <+bridge> Classic jupsti color 15:52 <+bridge> nice i have ddnet admin color 15:53 <+bridge> chillerdragon: i am surprised you dont use the IRC layout xd 15:54 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257695779653685328/image.png?ex=668557f8&is=66840678&hm=89b0f5bd06488371dd8b5838beacc352384a7e8b5a5bb69f32b4c9d8e489fe57& 15:54 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257695934268178432/ima_7c7fb51.png?ex=6685581d&is=6684069d&hm=606121f3b9a6707c0cd244f6ba4386d4077d80f8ed14d0518dbbb8df9f6ac325& 15:54 <+bridge> I prefer discord layout 15:55 <+bridge> i use chat bubbles, then i at least dont read me own messages xdd 15:55 <+bridge> If you don’t agree with the defaults you use the wrong software 15:56 <+bridge> Change my mind 15:56 <+bridge> it's no secret i find element.io shit xD 15:56 <+bridge> bloated, slow too many bugs 15:56 <+bridge> Should be this line: https://github.com/ewancg/shit/blob/64b79e6774992297e8d6626ef68f887cf57dfcd1/nixos/machine/home.nix#L45 15:56 <+bridge> Matrix is the worst 15:57 <+bridge> I will fix the irc connection this month! 15:57 <+bridge> matrix is too complex and can almost not be changed 15:57 <+bridge> but the idea is cool 16:00 <+bridge> Nothing can compete with the one and only chat platform that has a kog logo glitching behind messages 16:00 <+bridge> forum.qshar.com? 16:01 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257697548085362759/ima_01d8a23.png?ex=6685599e&is=6684081e&hm=600d8f828473e94e2547e4633651b93b537a208c6e131642fde73bcde0529e6b& 16:01 <+bridge> lmao 16:01 <+bridge> nice 16:01 <+bridge> Omg good times 16:01 <+bridge> chillerdragon can you tell me my password on ur chat :justatest: 16:01 <+bridge> i forgor 16:01 <+bridge> vulkanGaming69 16:01 <+bridge> I think 16:02 <+bridge> wow 16:02 <+bridge> Opsi 16:02 <+bridge> But it’s read only 16:02 <+bridge> Cuz irc send bug since 2 days 16:02 <+bridge> i hope you are aware i used that pw in other places too 16:03 <+bridge> lol 16:03 <+bridge> I use a different pw for my account 16:03 <+bridge> vulkanGaming69 is guest password 16:04 <+bridge> it was hot, spc 16:04 <+bridge> it was hot, spicy and porn 16:04 <+bridge> when add forgot password button 16:04 <+bridge> that was the most secure pw ever 16:04 <+bridge> Uff 16:04 <+bridge> when add ssh login support 16:04 <+bridge> key auth 16:05 <+bridge> when add voice channels 16:05 <+bridge> Eeeee 16:05 <+bridge> i am interested in 120fps livestreaming 16:06 <+bridge> Omg such shit talking again xd I rq 16:06 <+bridge> same, weather is getting better 16:07 <+bridge> cya 16:08 <+bridge> Jopsti wether reveal 16:09 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257699585044910140/ima_77c2ddd.jpeg?ex=66855b84&is=66840a04&hm=2559fb3369c5c37b324e348c15fc940e505b4af535f36d45b2eb890f0d5f33dc& 16:09 <+bridge> Jopsti weather reveal 16:11 <+bridge> dark 16:22 <+bridge> Is that this auto generated dark theme ????? 16:22 <+bridge> 🤩 16:22 <+bridge> @patiga good job on the map lib looks crisp 16:34 <+bridge> i see you are doing 128 player server 16:34 <+bridge> what makes it difficult to raise size from 64? 16:35 <+bridge> thx! :) 16:35 <+bridge> Python or Rust? 16:35 <+bridge> Lots of statically sized stuff and the fact that the client only supports 64 tees 16:36 <+bridge> So lots of code needs to be modified to change mask sizes and array sizes + there is a complex layer that is needed to decide which 64 tees will get sent to each player 16:36 <+bridge> wow thx 17:15 <+bridge> i am once again compiling llvm 17:15 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257716236930912379/image.png?ex=66856b06&is=66841986&hm=465b9f558c1390269202728915249a068748fc7782f13a9a368f4fe33e77ec99& 17:33 <+bridge> how about arbitrary player count support? 17:35 <+bridge> Would be even better, but harder to support properly, especially if you want to keep stuff close by in the stack 17:37 <+bridge> Maybe compile time configurable 17:38 <+bridge> is this a way for you to stress-test your pc every month? :kek: 17:41 <+bridge> A little less hard to support properly. Ideally it would only be changing `MAX_CLIENTS`. I think eeeee implemented this once upon a time for ddwar but it's been so long I'm pretty sure the implementation is lost to time 17:44 <+bridge> :owo: 17:45 <+bridge> clientside ddwar ? 17:46 <+bridge> No, the clientside is the code that ddrace inherited later, ddrace64. Iirc ddraceN mapped down to 64 17:47 <+bridge> ah 17:47 <+bridge> well, the serverside implementation of mine works for n tees 17:48 <+bridge> supporting more than 64 players is not a problem on the server side. 17:48 <+bridge> Just the player mapping is required. Client needs more work, of course. 17:48 <+bridge> But I am also hoping that there are no fixed 64 arrays in the server 17:49 <+bridge> in F-DDrace all of them have been set to hold MAX_CLIENTS 17:54 <+bridge> I seem to have lost some irclogs somewhere 😦 18:01 <+bridge> Ok I was curious but it seems the ddwar source is indeed lost to time, unless @heinrich5991 managed to snag a copy for his archive. Sadge 18:01 <+bridge> I wanted to check how the client mapping was done, I remember it being pretty simple and pretty decent 18:08 <+bridge> Ok, I found it again, it wasn't as I remembered. We did have client support and we just crashed clients that couldn't handle more than 16 tees. @jupeyy_keks would be proud 18:20 <+bridge> on purpose? like `CrashThisClient(...)`? xd 18:20 <+bridge> @jupeyy_keks: is proud 18:23 <+bridge> No. We'd just send a snap with more than 16 clients and it'd just die 18:24 <+bridge> I think then we added an rcon command specifically stating >16 support `crashmeplx` 18:24 <+bridge> I don't remember what we did to clients that didn't send it though 18:25 <+bridge> I'm using "we" rather loosely there btw. fstd and eeeee were doing the work and they graciously let me watch and pretend I'm being useful 18:25 <+bridge> you was just collecting mana 18:26 <+bridge> I was absorbing C/C++ 18:26 <+bridge> don't be so critical about yourself xd 18:26 <+bridge> you were just collecting mana 18:29 <+bridge> I'm talking about like 13 years ago. I was truly a burden to everyone around. So glad they still let me do stuff even if it meant they had to fix it up afterwards 😄 18:31 <+bridge> F-Client pipeline failing on windows: https://github.com/fokkonaut/F-Client/actions/runs/9764651041/job/26953476645 18:31 <+bridge> Any ideas why it can't find SDL2 and Freetype? 18:32 <+bridge> Is it a cmake error or a build.yaml error? 18:36 <+bridge> https://github.com/fokkonaut/F-Client/blob/0b0a97f400f3e6a11348151e5197f8c264e0fd96/CMakeLists.txt#L101-L114 18:36 <+bridge> Could it be that this Python3_EXECUTABLE is wrong? It used to say PYTHON_EXECUTABLE before I switched 18:36 <+bridge> -1 years? 18:36 <+bridge> wow 18:36 <+bridge> not bad 18:38 <+bridge> Na, I was 5 on my other personality. The one you are talking about wasn't born yet 18:39 <+bridge> lerato 18:39 <+bridge> need ur help 18:39 <+bridge> Can't. I'm going shopping, then cooking, then eating 18:39 <+bridge> Havefun xd 18:53 <+bridge> I don't understand. Locally it uses the bundled version, why can't it on the CI? 19:02 <+bridge> ``` 19:02 <+bridge> Traceback (most recent call last): 19:02 <+bridge> File "D:\a\F-Client\F-Client\scripts\download.py", line 2, in 19:02 <+bridge> from distutils.dir_util import copy_tree 19:02 <+bridge> ModuleNotFoundError: No module named 'distutils' 19:02 <+bridge> ``` 19:02 <+bridge> that looks relevant 19:02 <+bridge> Where did you find that-? 19:03 <+bridge> ahj 19:03 <+bridge> in the log you posted 19:03 <+bridge> I see 19:03 <+bridge> What even is thatß 19:03 <+bridge> What even is that? 19:04 <+bridge> https://github.com/fokkonaut/F-Client/blob/cc0c4d1619a71e436079327d327e54cd252eccb1/scripts/download.py#L2 19:04 <+bridge> https://github.com/teeworlds/teeworlds/pull/3229 19:08 <+bridge> lol 19:08 <+bridge> thanks so much 19:15 <+bridge> mportError: cannot import name 'copy_tree' from 'twlib' (D:\a\F-Client\F-Client\scripts\twlib.py) 19:17 <+bridge> omg 19:18 <+bridge> got it 19:23 <+bridge> yay 19:23 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257748446941544488/image.png?ex=66858905&is=66843785&hm=9827e9147c9a60d449f44bf943e2add11938426c6bfd09fe01ba6bcfe4bd37a2& 19:43 <+bridge> in 128 player map selecting player name with tab doesnt work for new players 19:45 <+bridge> ^ 19:48 <+bridge> IMO it's only bad for devs who want to produce closed-source software 19:48 <+bridge> or those that want to support devs who want to produce closed-source software 19:49 <+bridge> its bad when you want to monetize your project 19:49 <+bridge> Pol servers are gone cause nobody paid for em? 19:49 <+bridge> if yes then i can pay but idk how much for 1 year 19:50 <+bridge> who i can contact in this case 19:50 <+bridge> @robyt3 19:50 <+bridge> MIT-0 FTW 19:50 <+bridge> only if you don't want to share the source ^^ 19:52 <+bridge> mostly yes, but it's also about younger devs that aren't aware so much about licenses 19:52 <+bridge> 19:52 <+bridge> additionally in theory you could not even test some stuff with friends without always providing source 19:52 <+bridge> you only have to provide the source if someone is asking 19:53 <+bridge> if your friends aren't asking, you don't have to provide the source 19:53 <+bridge> also you cannot use GPL in permissive licenses 19:53 <+bridge> so you have to be careful there too 19:53 <+bridge> I love how some companies will send it to you on floppies in mail just to be vein 19:53 <+bridge> No, "YOU CANT SUE ME IF THIS DESTROYS THE WORLD" is part of BSD 3-Clause No Nuclear Warranty 19:54 <+bridge> not sure what this means. you can license your own code however you like. you might need to *also* allow people to use your code under the GPL 19:54 <+bridge> GPLs biggest issue is it's poisonous incompatible nature. It basically forces all derivatives to be gpl too 19:54 <+bridge> So any gpl code is instantly a no-go for someone wanting to release under something less restrictive 19:54 <+bridge> yes if i depend on GPL libraries my code will need to use GPL too 19:55 <+bridge> but you can still *also* release your code under less restrictive licenses 19:55 <+bridge> can you quote that in the GPL license? 19:55 <+bridge> > Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code **or can get it if you want it**, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. 19:56 <+bridge> (from the preamble) 19:56 <+bridge> so if i create a closed source program using GPL code and die, what then? 19:56 <+bridge> then you can't provide the source code anymore? 19:57 <+bridge> so if you promise something and die, what then? 19:57 <+bridge> it doesn't happen anymore 19:59 <+bridge> i am not sure about that anyway 19:59 <+bridge> this hinges on the fact that there's something wrong with the GPL. if you agree with all of GPL's restrictions, there's no problem that it "forces itself" onto all derivatives. note that even BSD licenses "forces" attribution on all derivatives 19:59 <+bridge> the FAQ for AGPL for example says: 19:59 <+bridge> "A company is running a modified version of a program licensed under the GNU Affero GPL (AGPL) on a web site. Does the AGPL say they must release their modified sources? (\#UnreleasedModsAGPL) 19:59 <+bridge> The GNU Affero GPL requires that modified versions of the software offer all users interacting with it over a computer network an opportunity to receive the source." 19:59 <+bridge> > an opportunity to receive the source. 19:59 <+bridge> this says the same. you have to provide it if someone asks 20:00 <+bridge> well you "asking" sounds like i open a chat and ask him 20:00 <+bridge> i doubt that is meant by that 20:00 <+bridge> I'm pretty sure that's okay 20:00 <+bridge> otherwise there would be more concrete provisions 20:00 <+bridge> ok i provide you this... just give me 100 years 20:01 <+bridge> I'm sure the judge will grant you a reasonable time frame for this, which 100 years is not 20:01 <+bridge> see 20:01 <+bridge> and now you understand why it's not dev friendly 20:01 <+bridge> no? 20:01 <+bridge> suddenly a dev needs to know about what judges think 20:01 <+bridge> no? 20:02 <+bridge> just apply common sense 20:02 <+bridge> "ability to receive the program" 20:02 <+bridge> k 20:02 <+bridge> if someone asks, give it to them 20:02 <+bridge> GPL is really cool and it's super easy to understand, every dev understands what it stands for. really great 20:04 <+bridge> probably not how I'd word it 20:06 <+bridge> I am probably too late, but Ryozuki is just trying to scare you. AFAIK claiming other's work as your own is illegal even if the work is in public domain. I am not a lawyer, of course. 20:06 <+bridge> hmmmmmmm. got any source for that? 20:07 <+bridge> Unless it is incompatible with AGPL :P 20:08 <+bridge> Ukrainian law, but I am almost sure that it is quite the same in other European countries (iirc chillerdragon is in Germany, right?) 20:10 <+bridge> At least I know that by European law you MUST give attribution, as it is a moral right which doesn't expire 20:11 <+bridge> I'd like to see a citation on that 20:11 <+bridge> if that is/were the case, then CC0 would not work in europe 20:11 <+bridge> https://en.wikipedia.org/wiki/Creative_Commons_license#Zero,_public_domain 20:12 <+bridge> the wikipedia article doesn't mention conflicts with european law, at least 20:12 <+bridge> ye imagine if you ended up making specific compiler optimizations for your compiler that makes code running faster ~5% on your hardware for each but it can be used on another hw and give ~2% improvements 20:13 <+bridge> no one will buy your hardware if its better only because of software improvements that you share with others in this worlds 20:13 <+bridge> world* 20:13 <+bridge> On Wikimedia Commons I saw something like "I put this work into the public domain, but if it is not possible in your country, then I allow you to use it to the maximum extent permitted by the law) 20:14 <+bridge> On Wikimedia Commons I saw something like "I put this work into the public domain, but if it is not possible in your country, then I allow you to use it to the maximum extent permitted by the law" 20:14 <+bridge> "public domain" is not a concept in europe AFAIK, but that doesn't say anything about CC0 20:15 <+bridge> Well, CC0 provides such a workaround for countries with less permissive laws about PD 20:16 <+bridge> sooooo. you claimed that I cannot use CC0'ed works without attribution in europe. do you have a source for that? 20:23 <+bridge> Well, I guess no 👀 20:24 <+bridge> Although wait... 20:25 <+bridge> Yeah 20:25 <+bridge> https://en.m.wikipedia.org/wiki/Moral_rights 20:25 <+bridge> you should just be careful with releasing CC0 software by your own 20:25 <+bridge> CC0 tries to actively remove your copyright 20:26 <+bridge> CC0 is also currently not a approved open source license 20:26 <+bridge> https://opensource.org/faq#cc-zero 20:26 <+bridge> https://opensource.org/faq#public-domain 20:27 <+bridge> "CC0 was not explicitly rejected, but the License Review Committee was unable to reach consensus that it should be approved, and Creative Commons eventually withdrew the application. The most serious of the concerns raised had to do with the effects of clause 4(a), which reads: “No … patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.”. While many open source licenses simply 20:29 <+bridge> Because it is mainly meant not for programs :P 20:29 <+bridge> but so or so, all these things are human invented things. 20:29 <+bridge> 20:29 <+bridge> laws are and will always be subjective to a certain point 20:29 <+bridge> math is the only good thing. 20:29 <+bridge> 20:29 <+bridge> even tho you could say a law is also just complex math, math doesn't judge about itself xdd 20:30 <+bridge> it's just there to be discovered 20:30 <+bridge> egyt: could you accept that you have no free will? 20:30 <+bridge> or do you dislike that concept 20:31 <+bridge> Define "free will" 20:32 <+bridge> A nice idea for a video: "Is forced freedom still freedom?" 20:33 <+bridge> that you have a will that is not controllable, and thus not (not even in theory) calculatable. 20:33 <+bridge> for example arguments for a free will are flaws in math 20:34 <+bridge> Mi ne kompreni vin... 20:40 <+bridge> I'm struggling with a cxx.rs problem 😦 20:40 <+bridge> `Pin>` should be `Unpin` 20:41 <+bridge> ah, I think I need to update `cxx` 20:43 <+bridge> excuse me? 20:43 <+bridge> vulkan is hot 20:43 <+bridge> gaming is spicy 20:43 <+bridge> 69 is porn 20:45 <+bridge> How? 😄 20:46 <+bridge> unique ptr is unique xd 20:46 <+bridge> I should be able to move a pinned pointer around 20:46 <+bridge> `Pin` just says that I shouldn't be able to move out of the inner pointer 20:46 <+bridge> so did cxx upgrade fix it? 20:46 <+bridge> yes 20:46 <+bridge> needs cxx 1.0.75 20:47 <+bridge> epyc 20:47 <+bridge> new is good 20:47 <+bridge> 😬 20:47 <+bridge> Ah, I see 20:48 <+bridge> what are the average perf for RUS2 (128p srv) ? also what specs? 20:48 <+bridge> You are saying the pinned pointer should be moveable. Why did I even think you'd say the inner should be unpin 😄 20:53 <+bridge> @learath2: r u still learning go? 20:54 <+bridge> I think I know pretty much all there is to know about it now. It's not a very deep language. I'm only missing internals and some reflection magic still escapes me, but that's about it 20:55 <+bridge> I want to be able to call a rust function from go, natively and without cgo. what do I need to do? 20:55 <+bridge> go has some weird calling convention, I can certainly implement that from the rust side 20:55 <+bridge> how do I link it in? do I need to produce go assembly from my rust crate or can I somehow link object files in? 20:55 <+bridge> wow heinrich took that personal xd 20:55 <+bridge> Check out that one blog post I sent a month or so back last we talked. Sadly it's not very easy it seems 20:55 <+bridge> what is your rating [0-10]? 20:56 <+bridge> ah, we already talked about this. sorry, I seem to have forgotten 20:56 <+bridge> I guess what remains in my memory is parts of that conversation 20:57 <+bridge> You can link objects in that part is trivial, you should probably use the stable ABI0 that go has, but the problem is I don't really think there is a way to get go to use that convention when calling out to the linked in function, that's the part you'll need someone with more go knowledge than me for 20:57 <+bridge> Usually you use ABI0 when writing inline assembly in go, so you put an annotation that marks your function as ABI0 then go knows how to call it 20:57 <+bridge> > You can link objects in that part is trivial 20:57 <+bridge> ah nice 20:58 <+bridge> hmm, so I could achieve it with a wrapper that simply jumps to the rust function? 20:59 <+bridge> hmm, so I could achieve it with an inline assembly wrapper that simply jumps to the rust function? 21:00 <+bridge> I think it should be possible somehow 21:01 <+bridge> I'd have to think about it a bit more 😄 21:01 <+bridge> cool. I'll put that on my "future cool big projects list" 21:04 <+bridge> Actually let me give it a quick go without the rust part, see if I can get it to call some assembly properly 21:04 <+bridge> do report back 🙂 21:20 <+bridge> how is that working out? 21:47 <+bridge> Not very fun :D, but I did manage to call some extremely trivial assembly 21:49 <+bridge> So any `.syso` file you drop into the folder of a go module will get linked in automatically 21:49 <+bridge> what's .syso? .o, but I promise it's from the system? 21:50 <+bridge> `.o` but just don't mess around with it and link it pls 21:51 <+bridge> that sounds cool 🙂 21:51 <+bridge> can you go from .a to .o? 21:51 <+bridge> I think rust was somehow unable to emit object files 21:51 <+bridge> However, when telling you about ABI0, I kinda forgot that you can't really implement ABI0 without help from the go compiler, it uses pseudo registers 21:52 <+bridge> what are pseudo reigsters? 21:52 <+bridge> So I think your best bet would be to emit go assembler somehow, which can just then be compiled by the go compiler, then you'll have access to the pseudo registers 21:53 <+bridge> e.g. there is a register called `SP`, it's not a real register, it's just where the compiler decides to put arguments and the assembler will resolve it when assembling go assembler 21:54 <+bridge> ah. and it doesn't always go to the same register? 21:54 <+bridge> so I'd have too emit some go asm shim around my rust code, I guess (if I don't want to emit everything as go asm) 21:55 <+bridge> then I need to hook into the go runtime a little for stack support 21:56 <+bridge> Yes, or maybe someone more acquainted with go internals can come up with something better 22:09 <+bridge> I think we might also have to improve the client performance for 128 players. Although this is the debug build, I have 1800 FPS without the 127 debug dummies :justatest: 22:09 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257790292636209364/screenshot_2024-07-02_22-08-02.png?ex=6685affe&is=66845e7e&hm=c921a5f6f8cdba97ccba72f13012052803afeaf6c0fe5e7e36332555f8f3b33e& 22:09 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1257790293244248204/screenshot_2024-07-02_22-07-59.png?ex=6685affe&is=66845e7e&hm=1ea962c2f0ed02420319f1afa8c0d4974513a1795f9950e8e550ae0d8309df15& 22:10 <+bridge> Yep, in fact, the snaps are heavy on the CPU 22:10 <+bridge> The snap lookups are soo much 22:12 <+bridge> how much in release? xd