Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2022-09-21 00:00:00Z and 2022-09-22 00:00:00Z
07:58
tf
Avatar
Axum > actix > warp
10:43
So well designed
10:44
It shows they built on others ideas but improved
10:44
And sea-orm is awesome too
Avatar
https://github.com/techouse/sqlite3-to-mysql/ Better method than text file with manual seds

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] T...
11:01
License change to AGPL 3, lots of changes (sadly also breaking), support for automappers
👍 1
11:01
listed all changes in the link above
11:03
Avatar
because of the many changes, I hope I don't have to do a breaking fix soon because I missed something major 😅
Avatar
Reading the curl-multi pr
11:18
Mutexes rly should contain inside the data they guard
11:19
Its such a waste of time to figure out what they guard
11:19
And the names dont help
11:19
LoopL xd
Avatar
@Ryozuki LoopL is only the the lock guard, I think
Avatar
Avatar
Ryozuki
So well designed
u mean SurrealDB?
12:25
In talking about axum
12:25
Idk what that is
Avatar
my current stack for a api backend im doing
13:12
i should make a template or smth
Avatar
watcha doing?
Avatar
a modding hub for ff14
peepoWeebOut 1
13:24
xd
Avatar
@gerdoe forgot to ping you for twmap release ^^
Avatar
@Ryozuki is it public btw?
Avatar
Avatar
heinrich5991
@Ryozuki LoopL is only the the lock guard, I think
Yes. There is one lock guarding everything that is cross thread inside CHttpRunner. Multiple unique_locks to make sure things get unlocked properly on unexpected early exits from blocks
Avatar
Avatar
heinrich5991
@Ryozuki is it public btw?
Not right now
14:10
But idk if i wanna share that here
14:11
I only just started so there isnt anything tangible yet anyway
14:14
For the frontend ill use sveltekit
14:15
Cant get any more modern
Avatar
Living on tbe cutting edge 😄
14:42
@Learath2 lmao found this on discord gifs "anime programming"
Avatar
Lol so true
Avatar
Avatar
Learath2
Lol so true
I saw a funny thread on hn the other day
14:50
A c user on a rust related news, posted his project and said "find any memory related bugs" you wont find any
14:51
Dont need to say he got rekt
14:51
(his project was in C)
14:51
But he started putting excuses
14:51
On the bugs
14:51
It rly was funny
Avatar
I would have never gotten rekted as he was. I'm built different
Avatar
Avatar
Ryozuki
But he started putting excuses
Like what? How do you even excuse a buffer overrun? 😄
Avatar
He also blamed some stuff on libraries etc
14:52
And some commits where literally saying "fix double free"
Avatar
I hope people didn't "rekt" him about things that are runtime constrained, calling an internal function with impossible values isn't fair criticism as long as he never calls them like such
Avatar
And he said, yeah thats because it was before "production"
14:53
Anyway its also fun to see r/cpp
14:54
You can rly see how close minded those ppl are
Avatar
Avatar
Ryozuki
And some commits where literally saying "fix double free"
Ok, now I'm on his side, wtf
Avatar
They drive high on copium about ppl not using modern cpp
Avatar
The language this guy uses doesn't remove the possibility of memory management errors, ofc he had to fix mistakes. Don't rust users make any mistakes on classes of mistakes possible in their language?
Avatar
The thing is you cant make that mistake in rust
Avatar
I know, that's why I said in the class of mistakes possible in their language
14:56
If a mistake is made and fixed, what is the issue?
Avatar
There are proba more mistakes like that because they cant exist
14:56
In rust you cant have them at all
14:56
Thats the thinf
14:56
Thing
14:57
Cant you rly not see how good that is?
Avatar
So the mere possibility of mistakes implies all C programs are wrong? Even if mistakes are fixed before the program ever hits production?
Avatar
You said that
14:58
I just said it means there can always be more mistakes
14:58
And cve lists shows its real
14:58
Also it gives other devs more security
14:58
E.g your pr
14:58
I would be more confident about it being right if it was rust
14:59
I would only need to look for deadlocks
Avatar
I don't quite get how a fixed mistake is an own. Sorry
15:00
Doesnt mean I don't understand the value of Rust's memory guarantees. I just don't get how one person making and catching a mistake they made has anything wrong with it
Avatar
Not having the possibility to ever have that mistake > being possible to have the mistake
15:00
Its rly simple
15:01
@Learath2 cuz the guy on the thread dismissed everything about rust
Avatar
Avatar
Ryozuki
Its rly simple
It actually isn't that simple and that's why you use Rust instead of languages with much stricter guarantees
15:04
Ada has guarantees about deadlocks not existing, bounds checking, contracts, at the cost of performance. Haskell is provable at the cost of ergonomics.
15:04
These are general purpose languages. There are DSLs with even stricter guarantees that only allow you to do a very specific subset of things
15:05
Rust is just a great compromise. It trades off some ergonomics for memory safety
15:07
I honestly don't get these religious wars about programming languages. Most all of them have a place
Avatar
C has no place anymore, outside niche compile targets
15:07
BASED
15:07
And when gcc lands not even that
15:07
BASED
15:07
how to trigger learath 2.0
Avatar
This is why people dont really enjoy rust evangelists
15:08
What do you gain by "triggering" me? Ok gj, you annoyed me. What is tbe next step?
Avatar
Im triggering u on purpose
15:08
xd
Avatar
Do you think I'd be more or less open to Rust after you "trigger" me?
Avatar
oh god
15:09
Cant even joke
15:09
I thought we were on the same page
15:09
But i guess not
15:09
Sry if i offended you (edited)
Avatar
i love how learath has to use quotation marks
Avatar
Avatar
Ryozuki
Sry if i offended you (edited)
No I personally don't care. You can joke all you want. But a lot of the people that have been trying to sell me rust in the past have actually went that route
Avatar
I dont talk to any c devs outside this channel like this
15:11
Cuz i know im a rust meme here
Avatar
Anyway, the place of C in the current era is the universal interface. Since no one is going t get together to make a proper ffi, it'll just stay like that for a decade or two
15:12
C is not a language
15:12
But a protocol
15:12
You are forced to speak
Avatar
Honestly I've had a better time talking C even between rust code and rust code
15:14
I dont get what you mean
Avatar
The complexities of modern languages don't deal well with how simple the underlying hardware is. It sends around bytes, it doesn't understand what a std::HashMap is
Avatar
Avatar
Ryozuki
I dont get what you mean
I mean I've had a better time exposing rust functionality through the ffi and consuming it through the ffi then trying to link together a rust binary and a rust library
15:15
Specifically when one was compiled with a different version of rust. There are some breaking changes you need to keep track of to do it properly
15:16
Even more specifically I was working on a plugin system of sorts
Avatar
Ah probs
15:17
Did u do repr c
15:17
The struct layout is not guaranteed otherwise
15:17
Rust optimizes it
Avatar
Yes, on the outside facing interface I did
Avatar
Have u considered using wasm for that
15:18
Wasntime just got 1.0
15:18
Its a wasm runtime made in rust
Avatar
That's what I'll be doing next time around. I honestly am just tired of dealing with plugins in native code
Avatar
And they are sandboxed
15:19
A plus
Avatar
I like lua, I like wasm. One of those would be what I go with next time around
Avatar
ridruejo
15:19
wasm is better
15:19
you dont bind the person to a language
Avatar
Or maybe I'll take a look at js. V8 isn't half bad performance wise either
Avatar
i personally dont like lua
15:20
why
15:20
just use wasm
Avatar
i read this as "wasntme" like the map
Avatar
Avatar
Ryozuki
you dont bind the person to a language
I actually kinda like there being a language pre-agreed on 😅
Avatar
why? xd
15:21
i personally want to find a language with modding where u can use rust
15:21
lua is so boring
15:21
s / language / game
15:21
oof
Avatar
You write stuff. My code runs the stuff. When there is a compiler inbetween that's one more part that might be introducing an error
Avatar
Avatar
Voxel
i read this as "wasntme" like the map
I read it as wastetime 1.0 xD
Avatar
Avatar
Ryozuki
why? xd
Can't llvm target wasm? I thought it did
Avatar
Rhai - An embedded scripting language for Rust. Contribute to rhaiscript/rhai development by creating an account on GitHub.
Avatar
Look I'm doing evangelism
Avatar
Avatar
Learath2
Can't llvm target wasm? I thought it did
Idk proba
15:23
Kek
15:24
Im sure i posted that image
15:24
Oh wait
15:24
Is this another sv
Avatar
llvm can indeed target wasm
Avatar
thing is heinrich is adding rust into the ddnet client; im really curious as to what rust updates to the game will be like besides memory management
Avatar
Wdym by updates
15:29
I would have done this http multi in rust
15:30
But its hard to interweave the code probs
15:30
Idk how worth is adding rust here
Avatar
It would actually be a good place to use rust
16:52
It's a totally separate module
17:08
But poc is not merged
Avatar
i wish it would motivate the rust devs around here, but probs not, except maybe heinrich himself
Avatar
I only need to fix the damn macos
17:15
but I guess I need access to a macos machine for that
17:16
I need rust to produce a fat binary for the library
17:16
but that's not really supported, so I need to hack my way around that
17:16
macOS (and iOS) has a concept of universal binaries which contain code for multiple CPU architectures in the same file. Apple is migrating from x86_64 to aarch64 CPUs, so for the next few years it ...
Avatar
Maybe you can ssh to my laptop and poke around at it?
Avatar
if you'd allow me to do that, I'd be very interested 🙂
17:17
another bug I'm currently facing:
17:18
the https register connects via IPv6 (or at least re-uses IPv6 connections wherever they came from) even though it explicitly requests CURL_IPRESOLVE_IPV4
17:18
I stepped through it in the debugger to see that it really sets CURL_IPRESOLVE_IPV4
17:19
and I quickly looked at the documentation, it seems to indicate that CURL_IPRESOLVE_IPV4 will only attempt IPv4 connections. comments in the curl source code suggest, that this also applies for reusing connections
17:25
aha!
17:26
In some situations, it was possible that a transfer was setup to use an specific IP version, but due do DNS caching or connection reuse, it ended up using a different IP version from requested. Th...
Avatar
Avatar
Patiga
@gerdoe forgot to ping you for twmap release ^^
checky checky check check <3
Avatar
Avatar
Jupstar ✪
i wish it would motivate the rust devs around here, but probs not, except maybe heinrich himself
i mean there arent many rust devs here
17:55
i only know heinrich patiga me
17:55
and learath ocasionally
17:55
actually thats probs close to 30-40% of total devs xd
Avatar
Avatar
Ryozuki
i only know heinrich patiga me
reitw too
Avatar
theorically im getting the steam deck tomorrow
18:03
@Jupstar ✪ thanks to me kek
18:03
Avatar
better learn OpenCL
Avatar
Avatar
Jupstar ✪
reitw too
Well i'm a very little beginner lmao
18:17
+ I don't have a programmer soul lmao
18:17
I'm kinda bad, but I have fun
Avatar
Avatar
ReiTW
+ I don't have a programmer soul lmao
then change it, coding is best, coding is creation. if you aren't a craftsmen then there is almost no alternative to coding to create useful stuff 😄
Avatar
[quakenet] ChillerDragon BOT 2022-09-21 19:39:40Z
wait @heinrich5991 are you saying rust is not added into ddnet because of https://github.com/rust-lang/cargo/issues/8875 ?
macOS (and iOS) has a concept of universal binaries which contain code for multiple CPU architectures in the same file. Apple is migrating from x86_64 to aarch64 CPUs, so for the next few years it ...
19:40
for me it looks more like a nice to have than a actual blocker
Avatar
I'm saying that a workaround for that bug needs to be found before rust can be added to ddnet, yes
Avatar
[quakenet] ChillerDragon BOT 2022-09-21 19:43:48Z
but didnt the dude provide the workaround in the issue desc?
Avatar
macos needs binaries to be compiled for amd64 and aarch64
Avatar
[quakenet] ChillerDragon BOT 2022-09-21 19:44:11Z
doesnt it compile for both arch by default?
19:44
and then its running the lipo command
Avatar
rust? no, see that bug
Avatar
[quakenet] ChillerDragon BOT 2022-09-21 19:44:29Z
i mean mac
19:44
and for rust you can specify
Avatar
yes
19:44
so you need to integrate that into cmakelists.txt
19:44
that hasn't happened yet
Avatar
[quakenet] ChillerDragon BOT 2022-09-21 19:44:50Z
ye
19:44
a
19:45
yea i assume without testing thats pain
19:45
What about cross compile?
19:45
thats almost more important isnt it?
Avatar
I haven't attempted to cross-compile to macos
Avatar
[quakenet] ChillerDragon BOT 2022-09-21 19:46:00Z
is there even a lipo command for linux?
Avatar
currently it's more important to compile on macos, that's how releases get built currently
19:46
yes, definitely
Avatar
[quakenet] ChillerDragon BOT 2022-09-21 19:46:19Z
wait wot?
19:46
releases are build on mac?
19:46
ah wait since deen switched i guess? :D
Avatar
yes, since code signing of fat binaries did not work under linux
Avatar
[quakenet] ChillerDragon BOT 2022-09-21 19:47:07Z
macos moment
19:48
the only time i heard of code signing and fat binaries is while reading this book :D https://nostarch.com/art-mac-malware
A handbook for Apple infection methods, malicious script analysis, and Mach-O malware.
19:48
i rly got disconnected to mac
19:48
not sure if i can recommend the book tho. Its okay.
Avatar
This works around, i.e. fixes #5858 for curl versions < 7.77.0, as long as the servers are only registered via IPv4 OR IPv6. The bug that's being worked around is this: https://github.com/curl/curl/commit/84d2839740ca78041ac7419d9aaeac55c1e1c729. The bug makes curl reuse IPv6 connections when it is being requested to connect via IPv4, making the registering fail. This commit works around that by letting the server only register after having completely read the config, so any `s...
Avatar
Since netobjects are easier to extend now, and since EntityEx still has its issues/limitations, it can perhaps be considered to move the info from entityex (i.e. switch number) to DDNetLaser, DDNetProjectile, and so on. Some thoughts/proposals:
  • Adding the switch number to DDNetLaser. It would also be nice to distinguish both between all the laser types (this is already added in ddnetlaser, but only for the door type), and to add a "SubType" field to further distinguish for example types...
Avatar
Avatar
[quakenet] ChillerDragon
the only time i heard of code signing and fat binaries is while reading this book :D https://nostarch.com/art-mac-malware
nostarch is a really good book edition
20:42
Sometimes a bit too advanced (like the book about Malware Analysis), so hard to read and understand, requires some basic knowledge sometimes (edited)
Avatar
ba1777c Update move_sqlite.py to use sqlite3mysql - def- 3b7e963 Merge #5857 - bors[bot]
22:39
4f2f3f4 Only start registering once the server is fully started - heinrich5991 884cf75 Stop server if started with old curl and incompatible sv_register - heinrich5991 f7c7852 Merge #5859 - bors[bot]
Exported 234 message(s)