klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
FreeFull has quit []
<mcrod> hi
terminalpusher has quit [Remote host closed the connection]
<pog> hi
joe9 has quit [Quit: leaving]
<morgan> hi
andydude has joined #osdev
frkzoid has quit [Ping timeout: 240 seconds]
CalculusCats has quit [Quit: Meow Meow Meow Meow Meow Meow Meow Meow]
CalculusCats has joined #osdev
gmacd has joined #osdev
gmacd has quit [Ping timeout: 256 seconds]
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 250 seconds]
[_] is now known as [itchyjunk]
[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
<mcrod> if you'd want to pay money, which you don't and I don't blame you, could https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners
<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
<mcrod> ugh
<mcrod> er, #llvm
gmacd has joined #osdev
<mcrod> https://pastebin.com/YtPi7ae0 feel free to tell me what's going wrong here if anyone knows
<bslsk05> ​pastebin.com: -- Setting current clang stage to: stage2-- Registering ExampleIRTransforms as - Pastebin.com
<mcrod> because you're *supposed* to be able to make an install-distribution-stripped target
<mcrod> or allegedly, one already exists but it's a consistent `ninja: no work to do.`
gmacd has quit [Ping timeout: 240 seconds]
<mcrod> https://youtu.be/208K8EnSlB0 great video
<bslsk05> ​'Jonathan Blow on LLVM documentation' by Blow Fan Too (00:02:51)
<mcrod> how do people make things out of LLVM when the documentation is so piss poor?
<sham1> The code is the documentation
<mcrod> it's a non-trivial project with 982374982349 different moving parts
<mcrod> there's no such thing
innegatives has joined #osdev
<mcrod> heat: hey hey, heat, hi
<mcrod> help!
CommH has joined #osdev
CommH has quit [Ping timeout: 268 seconds]
gmacd has joined #osdev
CommH has joined #osdev
CommH has left #osdev [#osdev]
gmacd has quit [Ping timeout: 240 seconds]
<sham1> There's no code?
<mcrod> i sent a pastebin
<mcrod> but I'm getting answers finally
<sham1> I meant with LLVM
<mcrod> oh
<sham1> Bad joke, I know
<mcrod> there's no such thing as the code being the documentation in a project that size, but then I realized there definitely is.
innegatives has quit [Ping timeout: 240 seconds]
innegatives has joined #osdev
innegatives has quit [Quit: WeeChat 3.8]
awita has quit [Ping timeout: 240 seconds]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<mcrod> so, thank god, issue resolved
Turn_Left has joined #osdev
<zid> hrmph, I'm tempted to do something really gross
slidercrank has joined #osdev
Left_Turn has quit [Ping timeout: 250 seconds]
<zid> I could introduce a circular dep in my headers to fix my encapsulation issue
FreeFull has joined #osdev
<zid> orrr, I could just do void *wrapper_get_inner(struct wrap *); instead of struct inner *wrapper_get_inner(struct wrap *);
awita has joined #osdev
<sham1> Orrrrrrrr you could have a forward header
<sham1> Which forward declares everything
<sham1> Of course you can just do `struct inner *wrapper_get_inner(struct wrap *);
<sham1> `
<zid> that becomes circula
<zid> and makes my inner need to know all the outer-wrapper-functions
<sham1> Does it?
<zid> unless I have an outer-types.h and outer-funcs.h
<sham1> Only the translation unit that implements wrapper_get_inner needs to know about what wrap actually is
nur has quit [Ping timeout: 256 seconds]
<zid> I mean the least typing solution is just
<zid> struct inner; struct inner *wrapper_get_inner(struct wrap *);
<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
<zid> https://github.com/zid/wglskeleton/blob/master/gfx.c#L58 I pushed it, if you wanna check out the actual problem
<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)
<sham1> nice
<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
<bslsk05> ​groups.google.com: RedHat Sparc Linux user speaks.
gmacd has quit [Ping timeout: 240 seconds]
[itchyjunk] has joined #osdev
Left_Turn has quit [Read error: Connection reset by peer]
<heat> that is why bryan cantrill is the GOAT programmer
<Ermine> PCs = performance counters?
<heat> program counters
<heat> pc = ip
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
gabi-250 has quit [Remote host closed the connection]
Vercas1 has quit [Remote host closed the connection]
Vercas1 has joined #osdev
gabi-250 has joined #osdev
<pog> solaris: the operating system for girl-kissers
<pog> i know what i have to do
<mcrod> you did already
<mcrod> i am hungry.
<mcrod> there is no food.
linear_cannon has quit [Remote host closed the connection]
<pog> heat: yes
<heat> everyone_irl
<sakasama> Pokemon have better abilities though.
CalculusCats is now known as Calico
Calico is now known as a
a is now known as Guest849
<heat> no
Guest849 has quit [Quit: Meow Meow Meow Meow Meow Meow Meow Meow]
<heat> charizard breathes fire (cringe), womans pop small humans out of tiny hole that grows big into large human
<bl4ckb0ne> womans cant use surf
Guest849 has joined #osdev
<heat> whot? i can't hear you over the sound of you being wrong
Guest849 has quit [Client Quit]
<bl4ckb0ne> still cant surf on a woman
CalculusCat has joined #osdev
<sakasama> You clearly haven't watched enough TLC shows.
CalculusCat is now known as CalculusCats
pog has quit [Quit: byee]