[itchyjunk] has quit [Read error: Connection reset by peer]
<mcrod>
hi
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
pog has quit [Ping timeout: 265 seconds]
pog has joined #osdev
osmten has joined #osdev
freakazoid332 has joined #osdev
bradd has quit [Ping timeout: 248 seconds]
bradd has joined #osdev
pog has quit [Ping timeout: 265 seconds]
zxrom_ has joined #osdev
zxrom has quit [Ping timeout: 265 seconds]
sinvet has joined #osdev
Brnocrist has joined #osdev
* sakasama
peeks.
* sham1
pokes.
* sakasama
oozes generously.
<sham1>
Ew
bgs has joined #osdev
gmacd has joined #osdev
gmacd has quit [Ping timeout: 268 seconds]
slidercrank has joined #osdev
zxrom_ has quit [Ping timeout: 265 seconds]
elastic_dog has quit [Ping timeout: 265 seconds]
zxrom_ has joined #osdev
andydude has left #osdev [#osdev]
elastic_dog has joined #osdev
zxrom__ has joined #osdev
zxrom_ has quit [Ping timeout: 240 seconds]
zxrom_ has joined #osdev
zxrom__ has quit [Ping timeout: 265 seconds]
bgs has quit [Remote host closed the connection]
zxrom__ has joined #osdev
rnicholl1 has joined #osdev
zxrom_ has quit [Ping timeout: 265 seconds]
gmacd has joined #osdev
zxrom__ has quit [Remote host closed the connection]
gmacd has quit [Ping timeout: 246 seconds]
sprock has quit [Ping timeout: 240 seconds]
sprock has joined #osdev
osmten has quit [Ping timeout: 245 seconds]
gmacd has joined #osdev
gmacd has quit [Ping timeout: 240 seconds]
GeDaMo has joined #osdev
danilogondolfo has joined #osdev
rnicholl1 has quit [Quit: My laptop has gone to sleep.]
Left_Turn has joined #osdev
JerryXiao has quit [Ping timeout: 268 seconds]
JerryXiao has joined #osdev
osmten has joined #osdev
goliath has joined #osdev
pog has joined #osdev
Turn_Left has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
Left_Turn has quit [Ping timeout: 265 seconds]
awita has joined #osdev
gmacd has joined #osdev
gmacd has quit [Ping timeout: 240 seconds]
dude12312414 has joined #osdev
dude12312414 has quit [Excess Flood]
dude12312414 has joined #osdev
gmacd has joined #osdev
gmacd has quit [Ping timeout: 240 seconds]
gmacd has joined #osdev
CommH has joined #osdev
CommH has quit [Quit: Leaving]
<mcrod>
where is everyone
gmacd has quit [Ping timeout: 240 seconds]
<GeDaMo>
Earth
<sham1>
Just got out of the workplace's team building or w/e day
<sham1>
It was fun, but there were also enough people starting to drink that I felt it was a good time to dip
heat has quit [Read error: Connection reset by peer]
<sham1>
The official day had run its course anyway
heat has joined #osdev
<mcrod>
what a sham.
<sham1>
Yes
<pog>
hi
<mcrod>
hi
<sham1>
hi
<heat>
windows
<mcrod>
air quality
<mcrod>
you know, IAR is just AIR spelled differently
<mcrod>
it could be a sign.
<heat>
IAR is an anagram of RIA
<heat>
what does this mean? i dont know, you tell me
<mcrod>
reduction-in-amazingness
<heat>
you know what IAR isn't an anagram for?
<heat>
goodcompiler
<mcrod>
i ate rabbits
<GeDaMo>
I saw a rabbit today
<heat>
WHAT
<heat>
no way!
<GeDaMo>
I saw a deer earlier this week too :P
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<mcrod>
jesus why is it SO FUCKING HARD TO PROPERLY BUILD LLVM
<sakasama>
I've seen too many primates recently.
<sham1>
mcrod: hard in what way? Takes too long? Weird to configure the build?
<mcrod>
weird to configure the build
<mcrod>
the "build a distribution of LLVM" is absolutely worthless, I haven't time to play with it again until now
<heat>
yes it is
<mrvn>
GeDaMo: are you insane? You went outside? Or did it get close to your window at night?
<heat>
please see my build_toolchain.sh
<mcrod>
really, how hard can it be to say "using the host compiler, build a stage1 compiler, then with stage1 compiler build the stage2 compiler, deploy that"
<heat>
oh gosh you want to build 2 stages?
<heat>
do you like pain?
<mcrod>
without CMake *shitting the fucking bed*
<mrvn>
mcrod: dunno, but look how insane that is in gcc
<mcrod>
heat: that's LLVM's "right way"
<mcrod>
mrvn: i'm dreading it
<mcrod>
fucking dreading it
<heat>
it's bullshit
gmacd has joined #osdev
<mrvn>
mcrod: gcc has a lot more to configure with all the multilib crap you need
<heat>
that's unbearable
<heat>
particularly even more so with LTO on
<GeDaMo>
Outside is a nice place to visit, I don't know if I'd want to live there :|
<mcrod>
the fastest toolchain is probably going to have PGO+LTO and statically linked everything
<mrvn>
heat: it was nice to first build a working c compiler if all you have is a comercial unix cc that is like pre ansi C.
<heat>
in theory
<heat>
in practice, how much does it matter?
<mcrod>
also
<mrvn>
heat: a lot when I was at university
<mcrod>
I actually don't know how fast github pipelines are
<heat>
the furthest I build is ThinLTO
q3lont has joined #osdev
<heat>
they're not
<mcrod>
and I don't even know the RAM amount
<mcrod>
LTO might straight up kill it
<heat>
you need to limit parallel link jobs to 1
<mcrod>
do you really
<mrvn>
heat: it was something you only did once though, or at least once per architecture. Once you had a gcc it was actually easier to cross build a gcc for a new arch using gcc on an existing arch than use the crappy cc from HP for example.
<mcrod>
oh, oh, parallel LINK jobs
<mcrod>
ok
Left_Turn has joined #osdev
<heat>
my last github actions job for an LLVM toolchain, *no LTO*, was 2h20
<mcrod>
what about gcc
<mrvn>
heat: that doesn't sound like overly much
<heat>
like 20m
<heat>
c++ baybee!
gmacd has quit [Ping timeout: 240 seconds]
Turn_Left has quit [Ping timeout: 240 seconds]
<heat>
ok a *ThinLTO* (not full LTO) LLVM build takes almost 5 hours
<bslsk05>
docs.github.com: About self-hosted runners - GitHub Docs
<heat>
this is tolerable because 1) i only enable LTO on nightly 2) i heavily cache toolchains
<mcrod>
well I was just going to have a thing that says "if the versions listed in the script haven't changed, don't bother building the toolchain"
q3lont has quit [Ping timeout: 250 seconds]
<heat>
i do it based on the toolchain script
<mcrod>
the problem with that is _any_ change, even a quality of life change will cause the toolchain to be rebuilt
q3lont has joined #osdev
<heat>
yep
<mcrod>
change the comments? rebuild
<heat>
but you could also change the build logic or change the build args
<mcrod>
yeah, it's a tradeoff
<heat>
and since my build_toolchain.sh is mostly static except when I do actually update toolchains or add a new arch, it works fine for me
<mcrod>
it'd be nice to have one of those fancy EPYC servers :(
<heat>
according to geist even google's build servers still struggle with LLVM LTO
<mcrod>
i can LTO on my PC
<mcrod>
but I have like... 32GB of swap space to do so
<heat>
once your LTO starts swapping you're dying
<heat>
the problem is that you either limit parallel link jobs agressively, and suffer in build time heavily, or you don't and you OOM or swap agressively
q3lont has quit [Quit: Leaving]
awita has quit [Ping timeout: 250 seconds]
gmacd has joined #osdev
nur has joined #osdev
gmacd has quit [Ping timeout: 246 seconds]
slidercrank has quit [Quit: Why not ask me about Sevastopol's safety protocols?]
gmacd has joined #osdev
<sham1>
Large C++ codebases. Not even once
gmacd has quit [Ping timeout: 240 seconds]
nur has quit [Ping timeout: 246 seconds]
nur has joined #osdev
nur has quit [Read error: Connection reset by peer]
nur has joined #osdev
gmacd has joined #osdev
Piraty has quit [Quit: -]
nur has quit [Read error: Connection reset by peer]
Piraty has joined #osdev
<zid>
heat: I fixed my encapsulation, no thanks to you ofc, smh
<zid>
You and your egg flavoured crisps
gmacd has quit [Ping timeout: 248 seconds]
<mrvn>
heat: the linker should suspend LTO jobs automatically when it starts swapping.
<mrvn>
Remind me to limit parallel LTO in my kernel because I parallel link all dirs.
<mrvn>
16 linkers each starting 16 LTO threads would be bad.
gmacd has joined #osdev
xenos1984 has quit [Ping timeout: 265 seconds]
xenos1984 has joined #osdev
awita has joined #osdev
xenos1984 has quit [Ping timeout: 240 seconds]
wootehfoot has joined #osdev
danilogondolfo has quit [Quit: Leaving]
nur has joined #osdev
xenos1984 has joined #osdev
dutch has quit [Quit: WeeChat 3.7.1]
<geist>
heat: i can ask around, but i thought the build syste for llvm has a specific thing for this, where it explicitly can limit the number of link jobs vs compile jobs
dutch has joined #osdev
gmacd has quit [Ping timeout: 240 seconds]
<mcrod>
i remember something like this as well
<mcrod>
but who knows if it's documented
<mcrod>
i'm in LLVM waiting for someone more learned than I about the stupid distribution scripts that I am still struggling to spend time on
<zid>
it's opaque anyway, but to get the 'struct inner;' from inner.h would mean including it
<zid>
into wrap.h
<sham1>
Yeah, that works. Although I personally like to have a universal `forward.h` file for any subsystem kind of deal which is then included by every other include file
<sham1>
And that just forward declares all the structs and enums and the like
<zid>
I should just do the inner.h include and fix the circularness probably
<bslsk05>
github.com: wglskeleton/gfx.c at master · zid/wglskeleton · GitHub
<zid>
model is the 'outer' struct, so it's the only thing the game engine can pass to the renderer, the internal 'gfx' struct is what the renderer actuall wants, so needs to unpack it a little
<sham1>
Handing a `struct model` to `gfx_draw` seems weird to me. It'd probably make sense to have a `model_draw` and then have that pass a `gfx` to `gfx_draw`
<zid>
yea same that's what I thought
<zid>
but
<zid>
wait why did I decide not to do that again, I definitely considered it, then ruled it out for some reason
<zid>
yea let's quickly go do that, I think I just dumbed
<zid>
model_draw needs to exist anyway us I need to update the uniforms there
<sham1>
Yeah. gfx_draw shouldn't know anything about other objects
<zid>
I imagined a problem with scene.c calling model_draw
<zid>
then got lost in the weeds
<sham1>
Remember SOLID and the Single-responsibility principle
<zid>
I recognised it was wrong
<zid>
I just had a bad assumption somewhere
<zid>
about who was including what and where etc
<zid>
needed to step back and rubber duck you
<zid>
to get it back in view
<sham1>
np. I deal with design patterns and SOLID etc. basically daily at $JOB
<zid>
like I said, I didn't fuck that part up :P I knew it was wrong
<zid>
I just missed the trees for the forest in my actual editor, I have like 18 headers open
<zid>
(You can refresh it btw if you wanna see it disappear)
<bslsk05>
github.com: wglskeleton/scene.c at master · zid/wglskeleton · GitHub
<zid>
why I thought that had to be gfx_.. idk
<zid>
in other news, I've decided that history is for noobs, and my new strategy is git rebase -i --root && git push --force
gmacd has joined #osdev
irl25519 has joined #osdev
innegatives has joined #osdev
joe9 has joined #osdev
<zid>
I should probably write some code to actually go into these functions now I figured it all out... nah
<sham1>
Code is overrated
irl25519 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
heat has quit [Remote host closed the connection]
heat has joined #osdev
nur has joined #osdev
ss4 has joined #osdev
wootehfoot has quit [Ping timeout: 240 seconds]
<zid>
Interesting.
<zid>
Went downstairs, there was a cat eating the cat food.
<zid>
A white one.
<zid>
We do not own a white cat.
<mcrod>
remember, hallucinations are pretty bad
<zid>
It was definitely real
<zid>
There were significantly fewer biscuits and more one-eyed cats in the kitchen
eddof13 has joined #osdev
<sham1>
Speaking of cats, this chat is surprisingly dead
<zid>
I think heat is busy
<heat>
sorry, was slep
<zid>
heat, want a cat? Special discount rates
<zid>
I have a spare, but it's missing bits
<heat>
i have 2 rn, not interested in moar
<zid>
It's also very thin, saves on shipping
<mcrod>
i don't know how people sleep during the day
<mcrod>
I try but it doesn't work
<zid>
step 1, be tired
<zid>
step 2, fall asleep because tired
<mcrod>
yes
<mcrod>
no that doesn't always work
<zid>
it's literally that
<zid>
if you failed to fall asleep, increase intensity of step 1
* sham1
laughs in insomnia
nur has quit [Read error: Connection reset by peer]
ss4 has quit [Read error: Connection reset by peer]
gmacd has quit [Ping timeout: 240 seconds]
slidercrank has quit [Ping timeout: 240 seconds]
xenos1984 has quit [Read error: Connection reset by peer]
<heat>
svr4 had a really weird idea for kernel profiling
<heat>
you extracted a bunch of kernel PCs you cared about from /stand/unix, make them into a sorted list, sent them out to the kernel with an ioctl. then when the clock ticked the kernel would do a binary search over that array and if the PC was found it would get its counter incremented
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 250 seconds]
<mjg>
literally a pc or a range of
<mjg>
cause hitting precisely the address is.. unlikely
<mjg>
sounds like shits did not come up with flamegraphs innit :X
<heat>
hmm, i can't tell, the book doesn't go that into detail
<heat>
the AT&T SVR4 manuals probably have more on the actual ioctl
<mjg>
chances are SOLARIS has remnant of that idea
<heat>
unless you've seen a /dev/prf, probably not
<heat>
also solaris came up with dtrace, remember?
<heat>
all praise the all mighty bryan cantrill and jeff bonwick
<moon-child>
binary search seems to imply range
<moon-child>
since otherwise you'd probably prefer a hash table
gmacd has joined #osdev
<mjg>
bro
<mjg>
you don't seem to know that unix is built on *linear* searches
<mjg>
so that binary would already be a massie improvement over the usual shite
awita has quit [Remote host closed the connection]
xenos1984 has joined #osdev
<heat>
do not insult great historied kernels like the FreeBSD kernel and Solaris like that
gmacd has quit [Ping timeout: 246 seconds]
gmacd has joined #osdev
<mcrod>
bryan cantrill... there's a story about him