<bslsk05>
github.com: unix-history-repo/usr/src/sys/netinet at BSD-4_3_Reno-Snapshot-Development · dspinellis/unix-history-repo · GitHub
<bslsk05>
minnie.tuhs.org <no title>
<heat>
ah I see, you need to use the tags and not the branches
archenoth has quit [Read error: Connection reset by peer]
heat has quit [Remote host closed the connection]
moatx has quit [Ping timeout: 260 seconds]
pretty_dumm_guy has quit [Ping timeout: 246 seconds]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
<gamozo>
geist: Yeah, a lot of it re: rust code size, is probably that I don't use any third party libs in my big projects
<geist>
yah totally. i dont think the base language itself generates lots of code, except from what i can tell it's kinda templately? ie, not so much a template, but it uses a lot of customized variants of routines
<gamozo>
Same thing with build times. I genuinely don't know what causes such slow Rust build times? I've never really had bad build times on my own programs. I don't really know what the paradigm that causes issues is tbh
<geist>
so hypoethetically a shared module that operates on lots of different data types may end up getting stamped out a lot?
<gamozo>
I haven't observed that too much myself, but Rust is my first templated language and I'm maybe a bit more cautious about it
<geist>
yah not that that's intrinsically bad, but it may end up driving you towards particular patterns where code is effectively inlined and expanded a lot
<geist>
as tends to happen with C++ and lots of templately lib stuff
<Mutabah>
The slow builds are a mix of emitting a LOT of IR for LLVM to churn down, and some popular libraries being very generic (template) heavy
<geist>
which isn't intrinsically bad, just a thing
<gamozo>
Absolutely. I think that's kinda in the back of my mind when writing templates. I grew up hating them in C++
<gamozo>
For sure
<geist>
right, i think rust effectively implicitly relies on LTO to sort itself out
<gamozo>
I'm really picky about <2-3 second build-test cycles, so my build times and stuff are always super super carefully managed
<Mutabah>
`cargo check` helps a lot with those :)
<gamozo>
Yeah, I had to use LTO for my bootloader, although I don't think you have to anymore (it was to make sure all the formatting code got removed)
<geist>
yah. i thinki t's one of those things where large LTO things scale almost nonlinearly, though i have no data to back that up
<geist>
but i've seen some large rust projects pretty quickly reach the multi minute compile stage
<gamozo>
Yeah, that's a common complaint which makes me sad :( I think a lot of generic stuff is done linearly, which I don't think is necessary (eg. you could pre-process and get information to later compile units before the generics are done)
<gamozo>
I feel like Rust should do a very fast first pass to generate declarations, and should parallelize way better. I know it's a really hard problem, and they've probably cornered themselves with early design decisions
<gamozo>
I think it could be 10xed (improvement of compile times) with no loss of capability. :\ It's not super parallel beyond just, dependency graph stuff at the library level
<Mutabah>
Considering that I work on a not-big C++ project that has worse incrmental compile times than my not-small rust kernel project
<Mutabah>
I don't quite get why people complain about those
<gamozo>
Tbh, I actually think C++ is worst than Rust _on average_. I was just b uilding a small game server last night, ~30-40k LoC, maybe 30-40 1k LoC files, and it took like 20-30 seconds to build. I was confused
<gamozo>
(and that was with 1 cpp file per core) probably some macro expansion
<gamozo>
Honestly, I just can't live without Rust at this point though. Some of the paradigms I can do are so good. I made an allocator a few weeks ago that allows allocations to be combined into one allocation since the "compiler understands how the allocator works"
<gamozo>
I love those aspects of the language.
<gamozo>
As an optimization nerd, I can communicate more information to the compiler for it to make better decisions
<gamozo>
I think that's what I like about Rust so much. The compiler wants me to get down on its level and help explain what I want to do. Especially around things that compilers are bad at reasoning
<gamozo>
The more well defined the behavior, the more the compiler can do!
<geist>
oh i think the C compiler people disagree. they loooooove them some undefined behavior
<gamozo>
Makes it easy!
<geist>
but yeah i really should put more time into rust
<geist>
i fiddled with it enough to not be a complete noob, but not yet get to that point where it all clicks
<gamozo>
It took me maybe a few weeks to feel okay writing systems stuff, and like 2-3 years to feel comfortable with some of the complexities of unsafe code
<gamozo>
There's still some things I'm uncomfy with, like all the crazy aliasing rules and provenance. But some part of me enjoys it
heat has joined #osdev
Belxjander has joined #osdev
Likorn has quit [Quit: WeeChat 3.4.1]
nyah has quit [Quit: leaving]
<gamozo>
Alright, new bootloader and kernel starts today, it's been too long
<gamozo>
I have all the things I wanted to figure out, figured out
Likorn has joined #osdev
srjek|home has joined #osdev
srjek has quit [Ping timeout: 240 seconds]
ripmalware has joined #osdev
ripmalware has quit [Quit: Leaving]
ripmalware has joined #osdev
wxwisiasdf has joined #osdev
<wxwisiasdf>
yay, the i370 target for modern gcc works
<bslsk05>
'TempleOS DEMO mini_compiler' by [idk] (--:--:--)
eck has joined #osdev
gdd has joined #osdev
Bitweasil has joined #osdev
ebb has joined #osdev
JanC has quit [Remote host closed the connection]
JanC has joined #osdev
<geist>
yeah that's some out there stuff
Jari-- has quit [Ping timeout: 276 seconds]
<kazinsal>
RIP Terry, walked into a train
<No_File>
You know for sure?
<geist>
oh absolutely
bauen1 has quit [Ping timeout: 244 seconds]
<kazinsal>
yeah, Terry was killed a few years ago when he was hit by a train somewhere in southern Oregon iirc
<kazinsal>
dude was homeless and wandering the PNW as a result of his untreated condition
<kazinsal>
honestly quite tragic
<geist>
yeah totally
<kazinsal>
he was quite smart but his unmedicated schizophrenia just drove him into a psychotically hostile personality deeper and deeper as the years went on
<No_File>
The point is, did you see him die? Do you believe everything you read?
<kazinsal>
I know his parents confirmed his death at the time
<No_File>
You can't be sure, and if you claim to be, you are a liar.
<geist>
yeah it was pretty well confirmed, i remember it going around
<kazinsal>
unless you're claiming to be Terry in which case, self photograph with timestamp and username on paper
<No_File>
with checksum ;)
<geist>
plus of course terry stopped all output at that point too
<No_File>
Your obvious ability to connect things is amazing, keep up the good work.
<kazinsal>
yeah, and if there was ever a man who had dedication in his convictions and his passions it was Terry
<geist>
yeah
nsmb has quit [Ping timeout: 244 seconds]
Burgundy has quit [Ping timeout: 244 seconds]
<kazinsal>
completely unrelated I'm marathoning the classic Connery Bond films and despite being fairly low budget films from the 1960s (and being extremely 1960s in some aspects) they still hold up quite well
<geist>
looks like embargos are up on Zen 4 announcements
<kazinsal>
oh nice
<geist>
since all the news sites are reporting ryzen 7000 series stuff
<geist>
doesn't look like much interesting aside from the usual improvements. only thing different is it seems that the io die will always have some form of gpu on it
<kazinsal>
should be handy for DIY servers
<geist>
yah
<geist>
btw i took the 3950x and put it in another motherboard. will run that for a few days and see if it gets crashy
<kazinsal>
hopefully it turns out to be just a PSU issue and not the CPU
<geist>
yah, i mean if it doesn't fail in the other mobo that doesn't tell me muich but at least it doesn't tell me anything overtly bad
<kazinsal>
been thinking about what I want to do with regards to my next build since I want to retire my old sandy bridge server
<kazinsal>
not sure if it'll be a 7000 series or a discounted 5000 series
<kazinsal>
or maybe build a new PC with a 7000 series and an RTX 3080 and relegate my 8700K to VMware duty
<geist>
yah the difference being the new stuff will be AM5 based and need DDR5
<geist>
so that'll be a price hike for a while
<kazinsal>
yeah that'll be a tricky one
wootehfoot has quit [Ping timeout: 240 seconds]
bauen1 has joined #osdev
the_lanetly_052 has joined #osdev
X-Scale` has joined #osdev
X-Scale has quit [Ping timeout: 260 seconds]
X-Scale` is now known as X-Scale
AmyMalik has quit [Quit: Bye Open Projects!]
No_File has quit [Quit: Client closed]
Belxjander has quit [Ping timeout: 260 seconds]
chartreus has quit [Ping timeout: 244 seconds]
GeDaMo has joined #osdev
the_lanetly_052_ has joined #osdev
the_lanetly_052 has quit [Ping timeout: 258 seconds]
the_lanetly_052_ has quit [Ping timeout: 260 seconds]
Ellenor has joined #osdev
seL4 has joined #osdev
seL4 has quit [Ping timeout: 240 seconds]
fwg has quit [Quit: so long and thanks for all the fish.]
seL4 has joined #osdev
bauen1 has quit [Ping timeout: 244 seconds]
the_lanetly_052 has joined #osdev
bauen1 has joined #osdev
xenos1984 has quit [Quit: Leaving.]
gog has joined #osdev
xenos1984 has joined #osdev
nyah has joined #osdev
vdamewood has quit [Quit: Life beckons]
vdamewood has joined #osdev
Dyskos has joined #osdev
<mrvn>
gamozo: you think a system where the bios gives a bad memory map has any higher quality code for the uefi to generate a memory map?
<bslsk05>
www.anandtech.com: AMD Ryzen 7000 Announced: 16 Cores of Zen 4, Plus PCIe 5 and DDR5 for Socket AM5, Coming This Fall
<heat>
more cores or just more ghz?
<Bitweasil>
New socket, DDR5, PCIe 5, and integrated GPUs.
<Bitweasil>
New cores, moar GHz.
_xor has quit [Quit: bbiab]
Gooberpatrol66 has quit [Read error: Connection reset by peer]
Gooberpatrol66 has joined #osdev
<ckie>
geist: i have started!
<ckie>
so far the part of the plan where i collect things about i don't like C is /very/ successful
<ckie>
i don't like about C*
No_File has quit [Quit: Client closed]
k8yun has joined #osdev
<gamozo>
mrvn: Hopefully yes, because they probably didn't write the UEFI code (probably forked EDK or something)
k8yun has quit [Client Quit]
<gamozo>
and they didn't do 64-bit address math using 16-bit real mode in some hacky compiler (maybe)
<geist>
Bitweasil: yeah i discovered that the other day too. i removed the token vid card fro the server and figured it wouldn't boot but it ran just fine
<geist>
maybe thats a function of UEFI, since there's no assumption that there is a screen
<geist>
vs bios which at least provides the bios hooks to draw to it, etc
<geist>
not that bios particularly *mandates* that there's a vga/cga/mda display there, but there's a basic assumptio that there is
k8yun has joined #osdev
<Bitweasil>
"Error, no keyboard attached! Press F1 to continue!"
wootehfoot has joined #osdev
<Bitweasil>
Servers can generally redirect to serial, but this is just a random "gamer" board I got, and it's fine with it.
<geist>
yah same
<Bitweasil>
I mean, I keep a GPU around to toss in, but it means I can have my "utility GPU" and several compute boards without having to toss a GPU in each of them.
<Bitweasil>
Saves me some money and clutter.
<Bitweasil>
Though those Wraith coolers are quite garish.
wootehfoot has quit [Remote host closed the connection]
<geist>
aww i like em
<Bitweasil>
They make it easy to see when the system is powered on when it's a bare board, for sure!
<Bitweasil>
But I just don't like the whole "RGB all the things!" trend in computers.
CaCode has joined #osdev
terminalpusher has quit [Remote host closed the connection]
Dyskos has quit [Quit: Leaving]
Ermine has quit [Quit: Cya!]
Ermine has joined #osdev
GeDaMo has quit [Quit: There is as yet insufficient data for a meaningful answer.]
dra has joined #osdev
<heat>
ye can thank tianocore
<heat>
your only guaranteed output is just a text pipe (tty-like)
<heat>
you can find GOP protocols, but that's not guaranteed
<Griwes>
that ryzen 7000 ihs is the weirdest ihs design I've seen
wxwisiasdf has joined #osdev
<wxwisiasdf>
hi i have a question, where do i place my libc so my cross compiler toolchain uses my OS libc
<wxwisiasdf>
so i can build gcc using the cross compiler and port it to le os
<bslsk05>
github.com: Onyx/setup_package_build_env.sh at master · heatd/Onyx · GitHub
<heat>
this works for autoconf stuff
<heat>
and makefiles in general
<heat>
cmake and meson are more fidly and require cross files
<mrvn>
/usr/lib/<arch>-<kernel>-<libc>
<heat>
that's debian multilib-ish
<mrvn>
multiarch
<mrvn>
multilib is the gcc thing that's horrible
<heat>
that's multilib
<heat>
it's the same thing
<mrvn>
it'c totally different. The arch tripplet has been around for ages too
wxwisiasdf has quit [Quit: Lost terminal]
dra has quit [Remote host closed the connection]
<mrvn>
The sysroot thing won't work if you have to build local tools used to compile something, Or not on it's own. sysroot is just a low level chroot, it doesn't solve the problem of needing different libcs to cross compile software with mor complex build systems.
<heat>
what are you on about
<heat>
of course it won't
<heat>
you're not suposed to store local tools to the sysroot
<heat>
it does solve the problem of needing different libcs do cross compile software because the libc is literally there
<heat>
sysroot/usr/lib/libc.a <-- the compiler looks here
<heat>
i seriously don't know why you're talking about debian multilib, it's literally only used in debian and co.
<heat>
cross compilation works everywhere, always has
<heat>
no multilib in debian style
<heat>
you give it a sysroot, and boom, bob's your uncle
<heat>
if it needs to execute local programs, it should compile them (not with CC, not with CFLAGS; these compilations have special variables like CC_FOR_BUILD in autotools)
<heat>
if you're using cmake or meson, you pass it a platform/cross file that tells it how *your* platform works
dude12312414 has joined #osdev
<heat>
if it needs to compile things for the host, it uses the host's platform file
k8yun has quit [Ping timeout: 246 seconds]
<mrvn>
heat: and your systems CC will have sysroot configured to build for x86, x86_64 and x86_32? Or thumb, armv7 and aarch64?
<mrvn>
and aarch64_32 or whatever the shorter pointer thing is called on aarch64
<heat>
my OS? no, it just uses the sysroot the package build system wants it to use
<heat>
if the package build system tells it to use a x86_32 sysroot, it does that
<mrvn>
I kind of like having "gcc -m32" just work.
<heat>
great!
<heat>
now make it work on every system
<heat>
oh wait you can't because every system does everything differently
<mrvn>
I try but you seem to be working against it
<mrvn>
do you use .../include/<arch>-<os>-<libc>?
<mrvn>
The lib thing can be said to be a bit new, only 2 decades old now. But include has been around since whenever.
<heat>
no, my system uses /usr/$triple
<heat>
*shrug*
<mrvn>
at least that doesn't conflict.
<heat>
no one can agree on the multilib format, every multilib sucks and musl explicitly doesn't support multilib at all
<mrvn>
and again: multilib is the horrible gcc thing. It's called multiarch
<heat>
oh right, instead of being the thing you use to install libs with another configuration it's... the thing you use to install libs with another configuration
<mrvn>
instead of the thing where the path is different on every arch and system it's the one where the path is always the same. yes.
blockhead has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<heat>
so it's slightly different
<heat>
how is /usr/$triple much worse than /usr/include/$triple and /usr/lib/$triple
<mrvn>
heat: because on the nxt system its' /usr/lib/ and /usr/lib64 and the next it's /usr/lib and /usr/lib32 and so one.
<heat>
and on the next system it's /usr/lib/$triple
<heat>
*shrug*
<heat>
you're trying to convince me debian's solution is the best because it's the one you use
<mrvn>
The choice of /usr/include/$triple was made because a) compilers already supported and b) it allows sharing headers and libs that aren't architecture specific.
<mrvn>
If you use /usr/$tripple that's ok by me. As long as it's not the lib32 / lib64 crap.
Likorn has quit [Quit: WeeChat 3.4.1]
mahmutov has quit [Ping timeout: 246 seconds]
ripmalware_ has joined #osdev
<heat>
how do I put something at the end of my binary?
<heat>
in blob format
ripmalware has quit [Read error: Connection reset by peer]
<heat>
I want to get a piece of code in the reset vector
<heat>
so 0xfffffff0
wereii has quit [Read error: Connection reset by peer]
<geist>
usually i literally cat it to the end of it and then if you have a symbol in your linker script that's off the end you can assume it's address is where your binary got blatted
xenos1984 has quit [Read error: Connection reset by peer]
<geist>
but obvious issue there is bss and f it's going to blow over your thing
wereii_ has joined #osdev
Burgundy has quit [Ping timeout: 255 seconds]
<mrvn>
and making the image large enough that the data ends up at 0xfffffff0 physical would make it rather big.
CaCode has quit [Quit: Leaving]
<heat>
yes but this is firmware, it's starting up there anyway
<mrvn>
Just put it anywhere in .rodata or .data with start/end symbols. If's page sized then map it, otherwise copy it.
<heat>
i can't map it
<heat>
this is firmware
<mrvn>
if' you are already there then set "."
<mrvn>
. = 0xfffffff0; <blob section>
<mrvn>
There is an alternate syntax thingy for rom/flash images where you define memory regions and assign sections to regions and such but I never managed to understand that fully.
<geist>
yah same. i tried to convert my linker scripts to it
<geist>
but i seemed to remember hitting some roadblock but i forget what it was
xenos1984 has joined #osdev
Jari-- has joined #osdev
floss-jas has joined #osdev
<heat>
how do I do a 32-bit jump backwards in 16-bit mode?
<heat>
actually can I even
<heat>
lets see if I can golf the switch to 32-bit
<gamozo>
you can
<gamozo>
oh, misread nvm
<zid>
I'm only allowing you 20bit jumps until you show you can handle that much heat