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
zetef has quit [Remote host closed the connection]
pandry has joined #osdev
heat has quit [Remote host closed the connection]
gog has quit [Ping timeout: 255 seconds]
pandry has quit [Ping timeout: 264 seconds]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
wand has quit [Ping timeout: 240 seconds]
pretty_dumm_guy has quit [Quit: WeeChat 3.5]
blockhead has quit []
blockhead has joined #osdev
srjek has joined #osdev
goliath has quit [Quit: SIGSEGV]
Gooberpatrol66 has joined #osdev
<Matt|home> there we go. drugs are good. drugs make bad pain go bye bye
<Matt|home> kof123 - ? im still working on the project, and no we just had a different style approach.. and i felt a little inferior
edr has quit [Quit: Leaving]
agent314 has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
srjek has quit [Ping timeout: 255 seconds]
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
q3lont has joined #osdev
gildasio has quit [Ping timeout: 240 seconds]
gildasio has joined #osdev
q3lont has quit [Ping timeout: 255 seconds]
netbsduser has joined #osdev
q3lont has joined #osdev
netbsduser has quit [Ping timeout: 240 seconds]
fkrauthan has quit [Quit: ZNC - https://znc.in]
fkrauthan has joined #osdev
q3lont has quit [Read error: Connection reset by peer]
q3lont has joined #osdev
q3lont has quit [Read error: Connection reset by peer]
q3lont has joined #osdev
mkwrz has quit [Ping timeout: 256 seconds]
ThinkT510 has quit [Quit: WeeChat 4.1.1]
mkwrz has joined #osdev
ThinkT510 has joined #osdev
q3lont has quit [Ping timeout: 260 seconds]
q3lont has joined #osdev
TkTech2 has joined #osdev
TkTech has quit [Ping timeout: 268 seconds]
TkTech2 is now known as TkTech
[itchyjunk] has quit [Remote host closed the connection]
gbowne1 has quit [Read error: Connection reset by peer]
<vai> hi
GeDaMo has joined #osdev
q3lont has quit [Ping timeout: 255 seconds]
q3lont has joined #osdev
gog has joined #osdev
pretty_dumm_guy has joined #osdev
flom84 has joined #osdev
rustyy has quit [Ping timeout: 255 seconds]
flom84 has quit [Remote host closed the connection]
flom84 has joined #osdev
flom84 has quit [Quit: Leaving]
zetef has joined #osdev
q3lont has quit [Quit: Leaving]
srjek has joined #osdev
pretty_dumm_guy has quit [Ping timeout: 255 seconds]
clever has quit [Ping timeout: 256 seconds]
SGautam has joined #osdev
Nixkernal has joined #osdev
stdin has joined #osdev
goliath has joined #osdev
heat has joined #osdev
zetef has quit [Ping timeout: 256 seconds]
<bslsk05> ​lore.kernel.org: [RFC PATCH 2/6] mm/gmem: add arch-independent abstraction to track address mapping status - Weixi Zhu
<heat> this motherfucker just stole freebsd's idea and randomly tacked it onto linux lmao
<bslsk05> ​lore.kernel.org: RE: [RFC PATCH 0/6] Supporting GMEM (generalized memory management) for external memory devices - zhuweixi
<mjg> lol
<mjg> how to reduce performance:
xenos1984 has quit [Read error: Connection reset by peer]
<mjg> 1. take something used by freebsd
<blockhead> 3. profit!
<zid> 4. advent of shit
zetef has joined #osdev
xenos1984 has joined #osdev
freakazoid332 has quit [Ping timeout: 256 seconds]
elastic_dog has quit [Quit: elastic_dog]
<mjg> language on something people
* mjg shakes head
Left_Turn has joined #osdev
elastic_dog has joined #osdev
<heat> mjg, send patchen to replace linux mm with freebsd mm
<heat> freebsd generic, abstraction layer, very good
<heat> linux mm bad, developer useless incompetent, page tables
<bslsk05> ​www.illumos.org: Bug #16087: lseek(SEEK_DATA) on ZFS races with writes and can briefly miss data before it is flushed in a txg - illumos gate - illumos
<heat> ok, i've said this before but
<heat> zfs codes are crappen, zfs is a crapper idea
<heat> use ext4
<mjg> check perf you twat
<heat> i don't understand what any of that means, you twat
<mjg> 20% system time
<mjg> to build the os
<mjg> at -j 24
<heat> coolen
<heat> is that bad? i don't know
<mjg> it's total dogshit
<mjg> about 10% is tolerable
<heat> illumos is PESSIMAL because it stopped being written by SUN ENGINEERS
Left_Turn has quit [Ping timeout: 256 seconds]
stdin has quit [Quit: 0xC0370008 STATUS_VID_PARTITION_ALREADY_EXISTS]
<mcrod> hi
<heat> mcrod
<mcrod> yes
<heat> they're trying to freebsd all over linux
<mcrod> i saw
<mcrod> i saw long before you did
* mcrod point and laugh
<mcrod> i thought it was funny
<heat> how
<heat> do you follow the lkml?
<mcrod> yes
<heat> nice
<heat> anyway i replied to some freebsd vm shitting with some freebsd vm shitting
<heat> as is tradition
stdin has joined #osdev
<mcrod> yeah, you're on the front page
<mcrod> i admire your bravery to post or respond to anything on the LKML though
<heat> don't be a dumbass
<heat> reply to me and shit on freebsd vm some more
stdin has quit [Quit: 0xC0000240 STATUS_REQUEST_ABORTED]
<heat> like, shitting on OpenBSD? overdone. shitting on Solaris? was overdone in 2005.
<heat> the freebsd people don't get enough hate
<mjg> lol
<mjg> i just checked the reply
<mjg> dave miller vibes
<mjg> heat: have you ever kissed a girl?
<heat> yes
Left_Turn has joined #osdev
<heat> have you?
<mjg> yea
<heat> a girl that doesn't use freebsd?
<mjg> i guess in both caes it was your mother
<heat> what
<heat> anyway mofo don't you ever "have you ever kissed a girl" me
<mcrod> i've kissed girls many times.
<heat> you can't say that and go on long tirades on pessimal
<mjg> :(
<mjg> can i go on about SUN ENGINEERING ETHOS
<heat> yes
<heat> go right ahead
<mjg> sun == great
<mjg> if sun did something it was cause good
<mjg> i know, i read the oslaris internals book
<mjg> nothing but good
<mcrod> i've looked into jobs at IBM
<mcrod> unfortunately they're on the other side of the country
<mcrod> so, no
<mjg> lol
<mcrod> why lol
<mcrod> IBM seems cool
<mjg> ?
<mjg> wtf
<mjg> this channel sometimes
stdin has joined #osdev
<mcrod> :(
<heat> mcrod
<heat> what do you think about AIX and OpenVMS
<mcrod> hilariously
<mjg> do you intend to work aix mcrod
<mcrod> i used an AIX terminal when I worked at a hospital
<mcrod> mjg I would have to work in india to work on AIX
<kof123> and then you can call IBM for support :D
<heat> mcrod
<heat> rank these operating systems: windows, linux, freebsd, openvms, aix, hpux
<heat> and tru64
<mcrod> wtf is tru64
<mjg> :X
<mcrod> ok
<mcrod> i will rank
<mjg> we need an intro material for the channel
<mjg> with usual rants
<mcrod> windows, linux, freebsd, aix, openvms, hpux, tru64
<mcrod> i say windows first only for one reason
<mcrod> and one reason only
<mjg> which way is that
<heat> this is not the troll
<heat> dang
<mcrod> mjg you be the judge
<mjg> it was a trick question to begin with
<mjg> onyx being the only system you need
<mjg> innit right heat
<heat> absolutely
<heat> as long as you don't blow too hard in its general direction, it does the job juuuuuuuuust fine
<mjg> ya man the image i have downloaded is perfectly stable
<mjg> by that i mean the file has not changed one bit
<mjg> i'm not running that lol
<heat> skrew you
<mjg> aight real talk for a minute
<kof123> this is what i meant > IBM announces Global Initiative to train 30 Million People by 2030 innovation-village.com › Education Oct 14, 2021 · IBM today announced a global landmark
<kof123> which is right in the name
<kof123> which is just to say...there is no "india IBM" "usa IBM" etc. it is just one international business machines lol
<mcrod> yes
<bslsk05> ​www.theregister.com: IBM 'shifts' US AIX development jobs to India • The Register
<mjg> heat: i recently ran into more geezer talk about programming and at this point i don't know what, if anything, can be considered safe
<mjg> kof123: there are 2 ibms mate: profit center and cost center
<kof123> so marketing and everything else :D
<mjg> kof123: well 3, the last one being low cost center
<kof123> well i wasn't criticizing so-called "internationalism" just i keep hearing "skills shortage" and then lets say 20 years later: > New IBM survey reveals the greatest perceived barrier to ... newsroom.ibm.com › 2023-02-14-New-IBM-Survey-Reveals-the-Greatest-... Feb 14, 2023 · New IBM Survey Reveals the Greatest Perceived Barrier to Professional or Technical Skill Development is that Programs are Too Expensive
<kof123> oh, you have to pay people more if you want them .....wonder how much that cost to find out lol
<mjg> ibm is a dying empire
<mcrod> indeed
<mjg> it's all grift for decades now only afloat thanks to legacy contracts
<kof123> yes, i mean ...own worst enemy kind of
<heat> mcrod, if you want to work for IBM why not red hat
<mcrod> i'll never get into red hat
gog has quit [Ping timeout: 246 seconds]
<heat> so you can be a FEDORA PROJECT MEMBER and PACKAGE SOFTWARE like you love
<mcrod> you have to have both the C and C++ standards memorized
<mcrod> along with a beard that goes down to your feet
<mcrod> plus I don't like their interview process
<mjg> ??????
gog has joined #osdev
<mcrod> resume review -> phone screen -> interview -> presentation -> panel interview -> you may or may not get in
<kof123> > greatest perceived barrier i'm not trying to get off-topic...its not cuz education and inflation and everything else went up for decades and wages didn't keep up, no this is just a perception issue you see :D "managing expectations" :D
<mcrod> i'm not going through all of that
<heat> you do realize that's like
<heat> a normal interview process
<mcrod> no it isn't
[itchyjunk] has joined #osdev
<zid> for bullshit tech jobs it is
<zid> for jobs it isn't
<mcrod> that is as far removed from a normal interview process
<mjg> people working at red hat are mostly incredibly incompetent
<mcrod> i had one interview and that was it
<mjg> and most does not even know there is a standard
<mcrod> at my old job, one interview and that was it
<heat> you also wanted to hire a guy that did a = (1 << 0) to set a bit
<zid> google be like "How many electrical sockets are in this building? You must challenge the owner of each room and win, to add it to your tally. Go."
<mcrod> heat: I thought he was teachable
<mcrod> but I ultimately voted no when it came down to it
<zid> 1<<0 isn't bad
<zid> It documents the code without a comment
<heat> oh yeah
<zid> and 0b1 isn't standard
<heat> zid note the =, not |=
<heat> guess how he unset the bit
<zid> pls no 0 << 0
<heat> yep
<zid> That's a flag, not a bit
<zid> #define FLAG1 1
<zid> thing = FLAG1; thing = ~FLAG1;
<zid> 1U for luck
<heat> mcrod, point being that your interview process is LUL material
<mcrod> don't worry
<mcrod> the business decided to change up our process
<mcrod> now it's no longer in our control
<heat> while i don't advocate for fuckin leetcode interview invert 3 binary trees while entertaining my baby daughter
<heat> 1 interview with LUL questions is not it chief
<mcrod> reality is, interviews are hard
<mcrod> resume review -> phone screen -> interview -> presentation -> panel interview -> you may or may not get in
<mcrod> is much worse.
<heat> nah that's fine
<mcrod> google is known to reject you even if you passed the interview, so you can reapply and they can be EXTRA sure
<mcrod> sorry, I have to eat and have a roof over my head
<heat> i haven't heard of that
<mcrod> that's a shame.
<mcrod> maybe you're just shielded from this knowledge
<mcrod> that would be a blessing
<heat> and it's also known that google's interview process is LUL material too, in the opposite end
<kof123> that's supposedly something gates did "this is the dumbest idea i ever heard" <watches if you give up or not>
<heat> rh's interview process sounds very average to me
<mcrod> it's... very far removed from average
<mjg> rh is a joke cmpany
<zid> heat: Best interview question -> show some musl code and get them to spend 30 minutes on a patch
<zid> with git commit
<heat> lmao
<heat> "explain dns_parse.c"
<zid> Actually sounds pretty solid to me
<bslsk05> ​github.com: musl/src/aio/aio.c at master · heatd/musl · GitHub
* zid makes his browser wider
<zid> github y u so ugly now
<heat> i dont understand why someone would write code like this
<heat> it's like a kneejerk reaction to GNU code
<zid> I'd write it erm.. sequentially
<zid> I don't see why they've like, batched it
<zid> they've done if(!a || !b || !c) { if(!a) a = ; if(!b) b = ; if(!c) c = ; }
<zid> for some.. reason..
<heat> it makes some sense, they need to drop the rdlock and grab it in write mode
<zid> and why is there random locking in the middle
<zid> I see
<zid> I'd still linearize it
<zid> if(!need) return; if(map && map[a] ..) return;
<heat> but everything's written like they're code golfing
<zid> code should go down the page not across it, were possible, this is a prime candidate for going down the page
<zid> the amount of shit I've refactored from void f(...){ if(thing){ ... ... .. ... } } to void f(...) { if(!thing) return; ... } and unindented 800 lines is shockingly many
<heat> (-1U/2+1)>>24
<zid> it wasn't even a style thing for 'single return' because, goto exists anyway, they just wrote it in a silly way
<zid> Yea I have no idea what that means
<zid> is that.. 0x00800000? math is hard
<heat> yeah i had to try it out in python now
<heat> hex(int(0xffffffff/2+1) >> 24)
<heat> '0x80'
<zid> oh >>24 not >>8 right
<zid> Like, you can understand l + (l+r)/2
<zid> because it avoids an overflow, but that is just.. fuckin weird
<heat> they need a radix tree that covers all the fd range
<zid> That's a natural thing to want
<heat> but instead of harcoding the top level's size as 128
<heat> they decided to do... that?
<zid> have they discovered 'deletion is swapping' yet?
<heat> btw re: if (thing) {...
<heat> that irks me so much, and i'm starting to become an 8-width tab stan because of it
<heat> 8-width tab just finds shit code so much easier
<zid> Yea, it's a very good sign imo, when you're coding for yourself
<zid> that when you get to the second intendation level, that you should just be calling a function
<zid> so rather than for(a) { for(b) { } }
<zid> for(a) { allofb(); }
<heat> i still like two, three usually sucks but sometimes it's fine
<zid> I still often *do* two blocks
<zid> but when I start the second one, I consider if there's little enough local scope required
<zid> whether I could just maek it a 1 or 2 arg helper function or not
<zid> if yes? I often do
<zid> I now get a free comment, and a nice and testable function that won't accidentally use the wrong variables, the code gets reduced scope and no chance to accidentally shadow, etc etc
<zid> (free comment == name of the function)
<zid> if nested functions were proper C I'd probably use those, not 100% sure though
<zid> make all my one-off helpers limited in linkage to 'inside this function'
<heat> i think nested functions would easily just clutter up the parent function
<heat> in that case, might as well just flatten it out
<zid> yea that's why I am torn
<zid> it hides the decs for the params way over *there*
<gog> hi
<zid> can I have 3D source editors?
<zid> so I can like, overlay it on top
<zid> or below
<zid> 2D is too limiting for the hyperediting I need to do sometimes
<heat> i like c++ lambdas because they're mostly terse (terser than nested functions, at least)
<zid> heat: What about an editor that had two code columns, so my helper functions were 'along side' the main func?
<heat> but i still find them too annoying compared to shit like "(a, b) -> a + b"
<zid> they'd be inside the parent func lexically
<zid> but graphically they'd be next to it
<heat> hrm, i'm not sure that would work for me
<heat> i would probably find the second code column distracting
<zid> I think it'd work really well once it was "normal"
<zid> you can style it however you want, collapsed inside the parent and you have to click +, or whatever, but it's just *not* normal atm, to have.. source files be non-linear
<heat> yah
<zid> a call graph view thing would be another option
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
<zid> Then we could be all like "This code is shit, it makes the xref lines cross each other, smh"
* kof123 gives gog cheshire cheese cake
<heat> you know, i keep looking at my efi code and it's really bugging me
<gog> :o
<gog> cheescake
<gog> heat
<zid> It's EFI code, tht's the correct response heat
<heat> and i can't tell if its the NT style or if the code is kinda ass
<gog> efi code is always bad
<zid> If it ever looks normal to you, submit yourself for a brain scan
<gog> sniped nby zid
<zid> you sniped me last night
<heat> yes but it's pissing me the fuck off because I wrote it
<gog> true
<zid> [19:44] <gog> i'm a solaris liker and a girl kisser
<gog> pretend you didn't
<zid> now we're even
<gog> pretend i wrote it
<gog> curse my name
<heat> you know what's against EFI style?
<gog> what
<heat> if (!Ptr)
<zid> nice
<gog> i don't like that style anyway
<zid> if(ptr == EFI_ERROR_EMPTY_SET)
<heat> downvote gog, downvote zid
<gog> null pointer comparisons sould be explicit
<gog> i will not move from this
<zid> that is explicit
zxrom has quit [Quit: Leaving]
<zid> MULTIPLICATION SHOULD BE EXPLICIT! t = a; while(t--) b += a;
<gog> !whatever makes you think (whatever) is an expression
<gog> a pointer is not an expression
<zid> it is
<zid> it is
<gog> no it's not
<zid> Yes, it is
<gog> ok
<zid> b = -a;
<zid> that an expression?
<zid> (the rvalue)
<gog> fine, an expression with a boolean result
<gog> not a result coercecd to a boolean
<zid> so you don't like that == 0 and ! are equivalent?
<zid> (share the same number of electrons)
<gog> fine
<zid> I like the unionized meanings personally (have the right number of electrons)
<gog> maybe i have c# brainworms
<gog> but i've developed a distaste for it just like in javascript when a value is "falsy" or "truthy"
<zid> Why is C programming all about electrons though
<gog> or "nullish"
<heat> i like falsy and truthy as long as it makes sense
<heat> null as falsy makes sense, 0 as falsy makes sense
<gog> null isn't false, it's null
<zid> "is this null" is true or false, though
<heat> null is falsy because it's an invalid pointer
<zid> which is what the expression means
<gog> you're an invaid pointer
<zid> I'm regarded
<heat> >invaid
<heat> lmao typo get rekt
<zid> heat are you regarded too
<gog> :<
<heat> yes
<heat> highly regarded
<zid> I wish I were fully retired
<zid> rather than partially retired
<gog> we got more of our house set up
<zid> does it transform into a cool robot now
<gog> yes
<gog> also we hung fairy lights
<bslsk05> ​github.com: edk2-platforms/Features/Ext4Pkg/Ext4Dxe/Directory.c at master · tianocore/edk2-platforms · GitHub
<heat> is this routine ass?
<heat> i just feel like it does too much
<zid> all functions can be improved by more helper functions
<zid> and that amount of locals makes me think.. maybe it needs more
<heat> more locals? got it zid, thanks
<zid> the fuck is 'inode' for, heat
<heat> lol, it seems like i don't use it
<zid> It goes right into the macro ont he line below
<zid> so yea, just fold those two
<zid> why is off = 0 up there? why not the line before the while? or making the while a for?
<zid> for( UIN64 off = 0; Off < DirInoSize; Off += Partition->BlockSize) would get rid of 2 more lines
<zid> three more
<zid> could rename it to 'block' as well tbh, given it appears to be walking blocks
<heat> good point
<zid> Length is fishy too
<zid> It's assigned to, then used as an out param for Ext4Read, but then never checked
<zid> If it doesn't need checking, remove it, make it NULL, edit Ext4Read to do if(out) *out =
<zid> if it doesn't already
<heat> yeah, doesn't need checking, although i have some local changes which have axed that bit
<zid> I'd change your style so that labels are all lowercase, personally, given the vars are like This and I'm more than happy without enclosing {} on one line if checks, re the if(!Ext4ValidDirent){ goto Out; }
<heat> yeah, can't do that
<zid> which one?
<zid> both?
<heat> both
<zid> Shame, it'd make it better
<heat> do you think i'm calling StrLen by choice
<heat> or those for loops i have where I can't call the variable i, so I need to call it fucking Index
<heat> for (Index = 0; Index < Length; Index++) { Array[Index] = 0; }
<heat> do you realize how stupid this looks? yes, yes you do
<zid> Off isn't even used, hrmph, it's just bounding the loop
<zid> I'd hoist the for loop into a helper, to disambiguate that
<heat> i need a bunch of helpers in a bunch of places, I think
<zid> Like, Off looks like it shouldbe doing Buf + Off + BlockOffset
<zid> it looks like you're walking the same block over and over
<zid> having forgotten to add Off in
<zid> (Which is actually Block but with the wrong name)
<zid> But hey, you're not crazy, this code IS ugly
<heat> i touched some of the code like 2 days ago, and i constantly felt confused and shit just felt off
<heat> the style fucks with me but the code also needs some care
<heat> even if it is correct
<heat> (and it is, it's tested and fuzzed)
<zid> The style and names make it LOOK incorrect
<zid> the hoist stops that
zetef has quit [Ping timeout: 256 seconds]
<mjg> heat: s/Index/ArrayIndex/g
rustyy has joined #osdev
troseman has quit [Quit: troseman]
<bslsk05> ​github.com: Ext4Pkg: Refactor Ext4RetrieveDirent · heatd/edk2-platforms@cc76254 · GitHub
stdin has quit [Ping timeout: 268 seconds]
troseman has joined #osdev
troseman has quit [Client Quit]
frkazoid333 has joined #osdev
troseman has joined #osdev
<zid> !Ext4StrCmpInsensitive (DirentUcs2Name, (CHAR16 *)Name)
<zid> the one case where I definitely do == 0
<zid> That's a trinary comparison, converting it to bool is weird
<zid> balanced ternary ! operator when
mkwrz has quit [Ping timeout: 246 seconds]
mkwrz has joined #osdev
zetef has joined #osdev