dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
nvmd has joined #osdev
wblue has quit [Quit: wblue]
<zid>
that'll do, you can get large tits all over blight town and stuff and make a normal ass weapon
<mcrod>
well I killed havel
<mcrod>
now I'm back in darkroot basin
<mcrod>
thanks master key
nyah has quit [Quit: leaving]
<zid>
Lol, I clicked a random rust video that youtube recommended me
<zid>
He was explaining function types in rust, then went on to contrast them to C++
<zid>
saying "C++ tried, but it imported a lot of C and had to just do its best", then wrote some template mess in C++ and got.. template mess in the output
<zid>
I write it in C and it compiles to mov eax, 20; ret ofc
<mcrod>
i'm in the process of doing an experimental rewrite of one of our boards in C++
<zid>
I left a comment, that's like my 4th youtube comment
<zid>
hope he's proud
<mcrod>
what really sucks is I can't use gcc/clang
<mcrod>
IAR is my only hope
<heat>
use lots of templates
<heat>
and exceptions
<heat>
and dynamic_cast
<mcrod>
no
<zid>
no, more templates than that
<zid>
what you heard was "use some templates", what we mean is "use templates"
<zid>
No thing may not be a template
FreeFull has quit [Ping timeout: 246 seconds]
<mcrod>
so yes it seems like the only compilers that support STM8 are: CXSTM8 (COSMIC Software), IAR, and SDCC
<mcrod>
it doesn't look like it'd be too hard to add backend support for STM8 in clang though...
<mcrod>
the instruction set is pathetically simple
<heat>
my cat is actually prrring on my lap just now
<gog>
gog
<heat>
no its not gog, its fizz
<heat>
he smells kinda weird
<sham1>
smells like piss?
<heat>
no
<heat>
i cant tell what he smells like
<heat>
ear wax?
<heat>
cats are fucking weird
<heat>
but i would still take a bullet for this motherfucker
xenos1984 has quit [Read error: Connection reset by peer]
<heat>
no matter how much he smells like ear wax
<GeDaMo>
A quick search suggests that cats like to eat earwax :|
<heat>
i mean im not sure where he could get any
<GeDaMo>
Do you not have ears? :|
<heat>
i dont see a situation where he could starting ear wax off my ears and i wouldnt notice
<heat>
start eating*
<Maja>
are you a light sleeper?
<Maja>
also: meeeow :3
<heat>
no
* Ermine
pets gog
<heat>
but if a cat starting literally licking my fucking ears i would wake up
<heat>
also my cat says:
* gog
prr
<jimbzy>
My cat is a jerk. She was taken from her mama too soon and her previous owner couldn't deal with her aggression. I literally had to start out by holding her with welding gloves so she didn't destroy my hands and arms.
<Ermine>
My cat licks my hair sometimes when I sleep
<gog>
i don't have a cat :(
<Ermine>
you are the cat
<gog>
oh yeah
<heat>
jimbzy, yeah the other cat i have (also a female) is also like that
<heat>
she's really agressive and trusts no one
<gog>
females be like that
<heat>
gog do you want pictures of my cat
<gog>
yes
<jimbzy>
Ms. Fatone finally calmed down, but she still has her moments.
CaCode has joined #osdev
<heat>
gog, did u see him he's fucking green LMAO
<heat>
that's such an outdated camo pattern
<gog>
kitty!
<heat>
you're not in the woods u fucking idiot
<heat>
green and brown does not work in an urban setting, i can still see you
CaCode has quit [Remote host closed the connection]
CaCode has joined #osdev
carbonfiber has joined #osdev
DoubleJ has joined #osdev
DoubleJ has quit [Client Quit]
<gog>
vsvim kinda sucks
<gog>
it's not like using vim at all
<gog>
i keep doing vim commands and fucking up
<gog>
notably, :b doesn't manipulate buffers
<gog>
and i constantly have like a half dozen buffers open
<gog>
and :qa closes vs entirely
<gog>
which i guess is expected
<gog>
but there's no :bd
<gog>
idk i might uninstall this
zhiayang has joined #osdev
<Ermine>
gog: why not bare vim
DoubleJ has joined #osdev
<zid>
dis ting is bare vim blud
terminalpusher has joined #osdev
<terminalpusher>
so I'm trying to represent the structure of my file system in memory. I read a lot about the data structures used for this and it seems usually B-tree or B+ tree is used for this. I tried to find B-tree implementations when I realized Rust's std has a B-tree implementation. Is interpretation of how a file system is represented in memory somewhat accurate?
<terminalpusher>
I tried to model the way a file system might be represented in memory using std::collections::BTreeMap. It should be readable even for people that don't use Rust.
<terminalpusher>
I mean it basically acts the same as a hash map
<terminalpusher>
except that it's apparently more efficient for a file system
stolen has quit [Quit: Connection closed for inactivity]
<terminalpusher>
because most of the common/modern file systems nowadays seem to be using B-tree or B+ tree or a variation of either of those
benlyn has quit [Remote host closed the connection]
benlyn has joined #osdev
xenos1984 has quit [Ping timeout: 264 seconds]
xenos1984 has joined #osdev
gog has quit [Quit: Konversation terminated!]
xenos1984 has quit [Ping timeout: 246 seconds]
CryptoDavid has joined #osdev
danilogondolfo has quit [Remote host closed the connection]
xenos1984 has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
MiningMarsh has quit [Ping timeout: 264 seconds]
joe9 has quit [Quit: leaving]
benlyn has quit [Ping timeout: 244 seconds]
eck has quit [Ping timeout: 245 seconds]
eck has joined #osdev
bguebert has left #osdev [#osdev]
benlyn has joined #osdev
valshaped742 has quit [Read error: Connection reset by peer]
valshaped742 has joined #osdev
<heat>
you usually don't literally use btrees in memory, but rather on-disk
benlyn has quit [Read error: Connection reset by peer]
benlyn has joined #osdev
stolen has joined #osdev
<sham1>
Counterpoint: red-black tree
<heat>
red-black tree what?
<sham1>
Red-black trees count as Btrees
bgs has quit [Remote host closed the connection]
<heat>
thank you sham1, very cool!
<heat>
yes, you use btrees like normal data structures
<sham1>
You're welcome
<heat>
but not for filesystems, usually
<heat>
inodes *usually* use radix trees
<sham1>
Well filesystems also sometimes use btres
<heat>
no in-memory
<heat>
not*
<sham1>
fine
<sham1>
Anyway, emulators + steam deck
<sham1>
This'll be interesting
terminalpusher has quit [Ping timeout: 246 seconds]
<GeDaMo>
What are you going to emulate first?
<sham1>
Prolly GBA
<Cindy>
gba?
<sham1>
GameBou Advanced
<GeDaMo>
Pokemon? :P
<sham1>
Metroid
gareppa has quit [Quit: WeeChat 3.8]
joe9 has joined #osdev
CryptoDavid has quit [Quit: Connection closed for inactivity]
<heat>
how tf do you folks write commit messages?
<heat>
do you do something like "This patch/commit makes foobar do blah blah..." or "Make foobar do blah blah"
<heat>
writing a full commit message in imperative is kinda fucked up
<Cindy>
"who the fuck gives a shit"
<heat>
linus seems to prefer something like "this does ...", so not really imperative
<heat>
everyone?
<Cindy>
i meant that as in the commit message
<sham1>
Commit subject line should be in the imperative
<heat>
yeah but i mean the actual commit msg, not the subject
<sham1>
Don't necessarily write "what" but stuff like "why"
<heat>
i already dont like it
<sham1>
And for some tricky parts "how"
<heat>
The EFI spec (see UEFI 2.10, 24.1.12) requires
<heat>
EFI_SIMPLE_NETWORK.GetStatus() to handle NULL InterruptStatus pointers
<heat>
by not reading nor clearing the interrupt status from the device.
<heat>
implementation) did not correctly handle NULL IrqStat, despite already
<heat>
However, EmacGetDmaStatus (part of the DwEmacSnpDxe GetStatus()
<heat>
being tagged as an OPTIONAL argument. This made calling GetStatus()
<heat>
with a NULL pointer (for example, the call in MnpRecycleTxBuf) either
<heat>
corrupt memory or straight-up crash.
<heat>
Make it EFI spec compliant, by adding proper NULL pointer checks
<heat>
around RI_SET_MSK and TI_SET_MSK retrieval/clearing.
<heat>
woops, should've used a paste
<heat>
i'm kind of happy with this commit msg but it took some 10 minutes to shit out
<sham1>
yes
<sham1>
LGTM
<Ermine>
you know, that's one of the hardest problems in CS
<heat>
Reviewed-by: Sham1 <sham1@libera.chat>
<sham1>
Naming things, cache invalidation and off-by-one errors
<heat>
Ermine, yes, documentation is hard
<heat>
and the firmware people usually don't get that
<Ermine>
And then you notice a typo after your stuff has been merged
<heat>
this is not even my patch, i 1) fixed a guy's completely wrong patch 2) fixed up his commit message that really really sucks
<heat>
> If IrqStat is NULL, the interrupt status will not be
<heat>
> read from the device.When the interrupt status is read,
<heat>
> it will also be cleared.
<heat>
???
<Ermine>
lmao
<sham1>
Comments are a code smell
duderonomy has joined #osdev
<heat>
i can't tell who i hate more: people that unironically say comments are a code smell (SELF DOCUMENTING CODE!!!!!!!) or people that use the git log as comments
joe9 has quit [Quit: leaving]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<nortti>
how do you mean by using the git log as comments?
<sham1>
Writing the commit so verbosely to explain what and how and why the committed code does what it does
<sham1>
heat: self-documenting code is real
<heat>
every justification for everything gets put in the git log, at the expense of every other type of docs
<heat>
so you need to ... git blame everything and then git log
<heat>
i wholeheartedly support really good commit messages
<heat>
like linux oldies really have great commit messages
<heat>
but they shouldn't be the only source of docs particularly when you're *writing code*
<heat>
but some people think this is totally great
<heat>
*cough cough musl*
<heat>
sham1, i have seen very few examples of self-documenting code
<heat>
at the very least you need prior knowledge of how things work/are supposed to work before self-documenting code becomes a thing
<heat>
and/or it needs to be very trivial
<nortti>
yeah, for something to really be self-documentating (the "why" is understandable from the code), you need to undertand the domain and recognize the approach the code is taking
<sham1>
Oh for sure, people like to claim that a piece of code is self-documenting and then it just isn't
<sham1>
I've also seen the opposite, where the programmer has tried to compensate for crappy code with loads of comments
<sham1>
And I have other pet-peeves. For example most one-letter variable names are stupid
<sham1>
My rule is that they should either be absolutely understood within the domain (for example with 3D vectors x, y and z) or have a very, very small scope, like a loop counter
<sham1>
Otherwise? No
<sham1>
Banned
<sham1>
It's fun when you have a function spanning like dozens of lines and it keeps referencing a value, like for example "a"
<moon-child>
I find the most useful thing about version control systems is being able to git blame and see what changed at the same time as something else
<moon-child>
so honestly ... don't even care that much about commit messages