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
gildasio has joined #osdev
netbsduser has quit [Ping timeout: 260 seconds]
frkazoid333 has quit [Ping timeout: 246 seconds]
<zid> Bring bring.
[_] has joined #osdev
gildasio has quit [Quit: WeeChat 4.0.2]
[itchyjunk] has quit [Read error: Connection reset by peer]
andydude has joined #osdev
eck has quit [Ping timeout: 258 seconds]
eck has joined #osdev
wblue has joined #osdev
<gog> hello
<zid> Hello this is microsoft I am Patrick
MiningMarsh has quit [Quit: ZNC 1.8.2 - https://znc.in]
wblue has quit [Quit: wblue]
<gog> hello patrick can you help me with installing windows 95 from floppy disk
<gog> i'm missing some of them
<gog> but it's cool right?
<zid> First we need your activation system login information
<heat> hello its me patrick star
stolen has joined #osdev
<gog> yess my credit card number is
<gog> 4206 9642 0694 2069
<heat> hehe sex weed number
<gog> expiration date is 4/20
<heat> hehe weed number
<gog> code on the back is 069
<heat> hehe sex number
<gog> hehehehe
<gog> i like sex weed and its numbers
<heat> this weed FUCKS
<heat> unlike dave miller
<heat> who can't even kiss girls
<gog> this weed knows how to write a performant vmm
<gog> unlike dave miller
<gog> i mean bryan cantrill
<heat> ruh roh
<gog> ¯\_(ツ)_/¯
<heat> you have your UNIX historical figures wrong!
<gog> i don't know what unix is anyway
<heat> its an eufemism for a shit system
CaCode_ has joined #osdev
<gog> what do me and a unix sysadmin have in common right now
<gog> our shit system isn't working right :fingerguns:
<heat> ba dum tsssssssssssss
<heat> also programming socks. you and the unix sysadmin both have a great collection of programming socks
<gog> the sysadmin is more likely to be in a fursuit than programming socks
<gog> let's not mix up our stereotypes here
<gog> need to get me some catear headphones
<mcrod> hi
<gog> mcrod buy me cat ear headphones
<mcrod> ok
<mcrod> but first
<gog> sweet
* mcrod hug
* gog hug
CaCode has quit [Ping timeout: 260 seconds]
<mcrod> also i'm going to name my OS anubis
<mcrod> because it rhymes with unix
<gog> dog god
<mjg> do you like stargate
<heat> what
<gog> dog god
<heat> anubis does not rhyme with unix
<mcrod> yes it does
<mcrod> weakly, but it does
<heat> do you pronounce unix unis?
<heat> if so, jail?
<gog> i'm gonna call my system eunuchs
<gog> cause it'll have no balls whatsoeveer
<bslsk05> ​'Andrew Tate uses Unix' by sjveivdn (00:00:03)
<mjg> i'm gonna name my system my ex-girlfriend
<mjg> cause it does not work
<heat> im gonna name my system mjg because it's a nice fella with slightly obsessive issues wrt performance
<heat> but generally nice
<heat> also a solaris ripoff unlike our dtrace zfs man here
<mjg> since when have you known me to be nice
<heat> s/unlike/like/
<heat> you are nice
<mjg> nice fucking guy, right there
<mjg> got a problem with that
<heat> problem with what
<mcrod> i found UB at work I think
<mcrod> and now i'm sad
<gog> why
<gog> you found a bug
<heat> 🚨🚨Problem Alert 🚨🚨
<mcrod> because it is a major pain in the fucking ass to find the needle in the haystack
sinvet has quit [Ping timeout: 245 seconds]
<mjg> probably not the one he wa looking for
<gog> oh
<heat> are you doing null pointer arithmetic
<mcrod> no
<heat> are you suuuuuuuuuuuure
<mcrod> it's 100% deterministic and the program counter ends up at $000707
<heat> are are are are you subtracting or comparing two different pointers that do not point at the same object?
<mcrod> which is... in a 2D array
<mcrod> so.. no idea
<mcrod> we are doing scary pointer arithmetic stuff
<mcrod> that's my next lookup
<heat> wait what compiler are you using again?
<mcrod> IAR
<mcrod> no there are no sanitizers
<heat> really?
<mcrod> yes fucking really
<zid> Are you adding 1 to an integer
<mcrod> welcome to corporate land
<heat> i trolled you some months ago about IAR and you said you weren't using it
<zid> Adding to integers is super UB
<mcrod> we aren't using it for one project
<mcrod> but not for the one I work on
<mcrod> I'm a slave to IAR
<mcrod> i've bitched enough about IAR as it is
<mcrod> anyway, no sanitizers.
[_] has quit [Remote host closed the connection]
sinvet has joined #osdev
<Cindy> zid: in the case of a cosmic bitflip or unstable electrons
<Cindy> addition is truly UB
<mcrod> and even if we had sanitizers, not enough space to run on the unit
<mcrod> and: the logic core is not fully 100% separate from the "firmware" portion
<heat> do you have assembly?
<zid> have you considered
<mcrod> extremely minimal
<zid> dark souls
<heat> check if the stack adjustments are correct in your asm
<zid> wtf why is 2:34
<mcrod> yeah my next plan is to look at the stack
<heat> *actually*
<heat> dump the whole stack
<mcrod> I was smashing my head for two hours wondering why `static somestruct FUCKYOU;`
<heat> symbolize it, look at symbols in yer stack
<mcrod> was somehow being overwritten
<mcrod> by NOTHING
<zid> serial logging for every opcode duh
<mcrod> data breakpoints were worthless
<heat> breakpoints LMAO
<heat> have i told you I rarely use debuggers?
<mcrod> eat dicks heat
<mcrod> i don't really have a choice here...
<heat> eat dicks mcrod
<mcrod> if your solution involves anything in gcc/clang land, forget it
<mcrod> it doesn't exist
<heat> ofc it doesn't
<mcrod> what was funny was
<mcrod> I could see that code outside of the while (1) loop was being executed again...
<mcrod> as in
<mcrod> the functions that were called before the run-loop
<mcrod> just to set shit up
<mcrod> either UB or IAR generates shit code
<heat> my biggest tip: dump the whole stack
<mcrod> yes that's on my agenda
<heat> with your debugger or whatever
<heat> there's a reason why linux kernel panics do that
<heat> it's incredibly useful for context on crashes
<mcrod> well it doesn't crash
<mcrod> it just does completely idiotic shit
<heat> it's jumping to garbage
<mcrod> remarkably, declaring somestruct as a global variable works
<mcrod> presumably because it's 1,010 bytes away from that 2D array
<heat> huh
<heat> wait, so the crashing code is something like: void f() {static struct S blah; ...}?
<mcrod> no, the crashing code is literally declaring a struct at the top of the file called `static struct heat fuck;`
<mcrod> and that struct is brain dead simple
<heat> ... is your memory layout fucked?
<mcrod> i'm starting to think so
<mcrod> do not overestimate how much i've looked into this, that comes tomorrow
<heat> oh you're not working right now?
<mcrod> no..
<mcrod> i'm currently laying in bed
<heat> then stfu and play dark souls
<heat> liberate john darksoul
<mcrod> what are you doing in 11 hours
<heat> in 11 hours from now?
<mcrod> yes
<heat> having lunch probably
<mcrod> good
<mcrod> see you then fuckface
<heat> fuck you
<mcrod> it will be 0800 here and I will be at work banging my head on the desk wondering wtf is going on
<mcrod> and I have no intention to suffer alone with whatever the hell is going on
<mcrod> (note: i do appreciate support if needed)
<heat> what area are you on?
<heat> in dark soul
<heat> philly is not yet an area
<heat> i guess demon ruins is appropriate
<mcrod> i beat pinwheel, gave the lordvessel to frampt
<mcrod> so just in firelink shrine
<heat> so you beat pinwheel and went back?
<mcrod> ...yes
<heat> what?
<mcrod> what the hell do you mean what
<mcrod> there was nothing beyond pinwheel
<mcrod> I had to homeward bone
<heat> you know theres a whole new area after pinwheel right?
<mcrod> what the hell are you talking about
<heat> with one of the four lords
<heat> pinwheel's boss room has a ladder
<heat> you go up that ladder, boom you're in an area with literally darkness and skellies
<heat> congrats, tomb of the giants
<mcrod> well...
<mcrod> i can just warp back
<mcrod> i hope
<heat> warp to where?
<heat> you probably want to do the speedrunner skip to get back to pinwheel
<mcrod> to a bonfire close to pinwheel
<mcrod> i don't know what that is
<bslsk05> ​'[Dark Souls] Let's Skip The Catacombs! (Shortcut Tutorial / Leeroy Summon / Pinwheel Fight)' by A skeleton trapped in a man body (00:03:47)
<heat> here's a 10 year old vid
gog has quit [Ping timeout: 240 seconds]
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<bslsk05> ​'std::sus' by Suika (00:00:40)
heat has quit [Quit: Client closed]
Matt|home has joined #osdev
Matt|home has quit [Ping timeout: 246 seconds]
eck has quit [Quit: PIRCH98:WIN 95/98/WIN NT:1.0 (build]
dude12312414 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
eck has joined #osdev
bleb has quit [Read error: Connection reset by peer]
bleb has joined #osdev
duderonomy has quit [Remote host closed the connection]
duderonomy has joined #osdev
eck has quit [Quit: PIRCH98:WIN 95/98/WIN NT:1.0 (build]
eck has joined #osdev
Vercas6 has joined #osdev
Vercas has quit [Ping timeout: 240 seconds]
Vercas6 is now known as Vercas
Jari-- has joined #osdev
<Jari--> so basically you do need ELF for dynamic applications, -fpic pie wont help you on output format binary
<Jari--> working on my elf loader at the moment
<Mutabah> It might help a bit, as it changes some of the codegen to make the code position-indepenent
<Mutabah> but some of it needs linker support
<Jari--> Mutabah binary of elf?
<Jari--> binary position independent executable exists? thats what I am thinking about now.
<Jari--> pure headerless binary
<sham1> But why
<Jari--> lunix on C64 does dynamic linking:) at 1 MHz
<sham1> You need some kind of a header to a) know that it can be loaded and b) to know how to load it
<Jari--> wont hurt a bit I guess
<Jari--> sham1 yeah I think
<Jari--> sham1 I am currently using .bin format for binary executables (purely binary headerless)
<Jari--> .bin file name
<sham1> While ELF wasn't designed quite for the specs of a C64, it was designed for machines that are orders of magnitude slower and just worse than our current things
goliath has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
<Jari--> to get fixed start address you have to pass the linker no pie
<Jari--> on binary linkagwe
<Jari--> thats what I am doing with the kernel
Jari-- has quit [Ping timeout: 260 seconds]
Jari--- has joined #osdev
<Jari---> re
andydude has quit [Quit: Leaving.]
xenos1984 has joined #osdev
andydude has joined #osdev
andydude has quit [Client Quit]
andydude has joined #osdev
Burgundy has joined #osdev
Jari--- has quit [Remote host closed the connection]
sprock has quit [Remote host closed the connection]
Jari-- has joined #osdev
sprock has joined #osdev
bradd has joined #osdev
danilogondolfo has joined #osdev
Matt|home has joined #osdev
vinc has joined #osdev
GeDaMo has joined #osdev
acharles has joined #osdev
mhall has joined #osdev
andydude has quit [Quit: Leaving.]
nyah has joined #osdev
stolen has quit [Quit: Connection closed for inactivity]
<Jari--> this is interesting theory:
<Jari--> [11:53] <_Dbug_> Jari--, for what's worth, I once wrote a trivial to relocate executable format prototype for the Oric: Assemble the program twice at two different addresses (once at +0 and once at +256) then compare all the differences, these are all the relocated locations that need relocation, then use a small patch routine to set these bytes to the load location offset <_Dbug_> (obviously
<Jari--> limited to page aligned locations, not free location)
bslsk05 has quit [Quit: :)]
puck has quit [Quit: -w-]
gog has joined #osdev
puck has joined #osdev
bslsk05 has joined #osdev
netbsduser has joined #osdev
Jari-- has quit [Ping timeout: 244 seconds]
gareppa has joined #osdev
Left_Turn has joined #osdev
danilogondolfo has quit [Ping timeout: 250 seconds]
danilogondolfo has joined #osdev
Matt|home has quit [Ping timeout: 260 seconds]
gildasio has joined #osdev
Matt|home has joined #osdev
stefanct has quit [Read error: Connection reset by peer]
stefanct has joined #osdev
<gog> meow?
heat has joined #osdev
* sham1 purr
<heat> meow
* gog petpetpetpet
vinc has quit [Read error: Connection reset by peer]
<zid> Ring Ring.
ajunior has joined #osdev
<sham1> Banana phone
<zid> Ring Ring.
<gog> hello?
<zid> Hi, I can't find my phone have you seen it
<zid> I've looked up and down and all around and it's just gone
gildasio has quit [Ping timeout: 240 seconds]
CaCode_ has quit [Ping timeout: 260 seconds]
<gog> it's in ur hand
<gog> against your face
<zid> *click*
MiningMarsh has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
Matt|home has quit [Ping timeout: 246 seconds]
gareppa has quit [Quit: WeeChat 3.8]
danilogondolfo has quit [Ping timeout: 260 seconds]
danilogondolfo has joined #osdev
heat_ has quit [Remote host closed the connection]
heat_ has joined #osdev
awita has joined #osdev
gareppa has joined #osdev
vinc has joined #osdev
Turn_Left has joined #osdev
andydude has joined #osdev
CaCode has joined #osdev
Left_Turn has quit [Ping timeout: 260 seconds]
stolen has joined #osdev
aosync has quit [Ping timeout: 252 seconds]
aosync has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 246 seconds]
heat_ has quit [Ping timeout: 246 seconds]
heat has joined #osdev
[itchyjunk] has joined #osdev
bliminse has quit [Quit: leaving]
<bslsk05> ​github.com: serenity/Kernel/Locking/Mutex.cpp at master · SerenityOS/serenity · GitHub
<mjg> award for shittiest mutexes
<mjg> spinlock-protected lock acquire :X
<mjg> wtf
<mjg> these are not even mutexes but rwlocks
andydude has quit [Quit: Leaving.]
bgs has joined #osdev
zxrom has quit [Quit: Leaving]
<heat> // NOTE: This may be called from an interrupt handler (not an IRQ handler)
<heat> // and also from within critical sections!
<heat> ew
<zid> eww C++ comments over multiple lines
<mjg> that's the perl way
<heat> i've never done that haha ha haha ha ha
<heat> just dont look pls!
<mjg> offiicial justificaiton for lack of multiline comments is that you can add the marker no problemo
<mjg> to all lines
<mjg> people don't want to admit perl is a shite lang cause uni
<mjg> x
<mjg> in fact most langs which came from ze old days are mostly garbage
<heat> sh is the only valid good language
<mjg> sh master race innit
<mjg> rm -rf $LFMAO/*
<heat> hmmm that's a bad bug how could we ever test for that?
zxrom has joined #osdev
<mjg> it is physically impossible to crap out on uninitialized vars at runtime
<mjg> or in this caes, unknown
<heat> i have an idea
<mjg> so ya know, not perfect, but you can't do better!
<heat> lets run the script, wait 1 hour and then check if all the root dirs are still there!
<heat> genius masterstroke by me
<mjg> i can optimzie it
<mjg> wait 30 minutes
<heat> no 30 minutes is too short
<zid> heat not charging by the hour and it shows
<mjg> hm fair
<mjg> how about 45 minutes in the opensource version
<mjg> and 90 minutes in enterprise
<heat> yesssssssssssss
<heat> that sounds fantastic
<heat> RHEL will love this
<mjg> it's liek DOUBLECHECKED in etnerprise
<mjg> innit
<heat> oh oh oh oh you'll like this
<bslsk05> ​lwn.net: A virtual filesystem locking surprise [LWN.net]
<mjg> i had seen the thread
<heat> aw
<mjg> this is not a locking surprise though
<heat> conditional locking is always a horrendous surprise
<heat> according to brauner intel hasn't found regressions yet
<heat> which maybe speaks volumes for the validity of this kind of optimization :)
ajunior has quit [Ping timeout: 246 seconds]
<mjg> in order to get the "surprise" you had to intentionally violate the invariant that if the table has refcount 1, nobody else can fuck with your files
<mjg> are you for real man
<mjg> just few days ago i veririfed that atomics remain expensive af on saphire rapid, which is liek top intel cpu today
<mjg> if the intel test suite does not find the diff, it is because they don't bench the affected codepath
<heat> they bench will-it-scale, stressng, etc etc
<mjg> the codepath is kind of niche
<mjg> also you may be forgetting will-it-scale somehow does not have benches for stat family nor access
<mjg> i.e. the suite is weirdly incomplete
<heat> fdget_pos is for reads innit?
<heat> and getdents
<mjg> only some
<mjg> do they bench getdends anywhere?
<mjg> i know will-it-scale does not
<heat> yes, all regular files and dirs?
ajunior has joined #osdev
<heat> i dont know
<heat> if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode))
<heat> f->f_mode |= FMODE_ATOMIC_POS;
<heat> yeah, all regular files and all dirs
<heat> this is a beaten path for sure
<mjg> i'll have access to the box later today, i'm gonna check if it lands there
<mjg> if they can't find the diff, it either does not or they are reading big-ass bufferz
goliath has quit [Quit: SIGSEGV]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 246 seconds]
gareppa has quit [Quit: WeeChat 3.8]
<Ermine> Some unix fans admit that perl is shit
<heat> unix fans? admitting stuff is shit????
<sham1> perl is good
<heat> Larry Wall is a fucking genius
<sham1> yes
<sham1> As long as you use English
<sham1> As in `use English;`
<mjg> one of the shittiest aspects was patched few years ago
<mjg> namely *now* you can have function declarations
<mjg> great work larry, too bad all the legacy shit out there does not use it
<heat> Wall's Christian faith has influenced some of the terminology of Perl
<mjg> and new progs are not even in perl
<heat> fuck that shit
<sham1> heat: bless
<mjg> ey fuckers
<mjg> do you think perl is pass by ref or by value
<heat> ref
<mjg> press 3 if you don't know
<sham1> yes
<mjg> that iz correct
<mjg> heat: larry has good quotes
<mjg> e.g., he is standing on the shoulders of giants
<mjg> and is kicking their ears as he pleases
<heat> i am standing on the shoulders of relatively small people that are all stacked together in some weird tower of babel scenario
<mjg> ey not seeing far because you are standing on the shoulder of midgets
<mjg> is my quote, copyrighted 'n shit
<sham1> tower of barbie
<mjg> would oppenheimer use RUST?
<heat> probably
<mjg> would he use... ATOMICS
<mjg> GET IT
<heat> he would extensively use atomics
<mjg> author of the atomic op
<heat> then he'd regret the whole thing
<mjg> i am become geezer, destroyer of performance
<heat> oppie writes a lockless malloc
<mjg> ye with lock cmpxchg
<mjg> or cmpxchg64b
<heat> oppie then regrets releasing such a bad thing to the world
<heat> #mm on bonwick's magazines idea: <jedix> might be better to not use gun termonology though?
<mjg> > how about "bong" and "stash"
<mjg> > stick to guns
Matt|home has joined #osdev
<heat> hahaha
<mjg> so i just did a read1_threads, according to perf mutex_lock + unlock account for just shy of 4% of cpu time
<mjg> and that is with other pessimizaitons already in place
<mjg> that's on ice lake
<mjg> gonna test saphire later
<froggey> serenity's mutexes are recursive rwlocks? lol
<mjg> says the LISP kernel guy :S
<froggey> hey
<mjg> not that i disagree with assesment
<froggey> my mutexes don't suck
<mjg> they lazily lock?
<mjg> :X
<bslsk05> ​github.com: Mezzano/supervisor/sync.lisp at master · froggey/Mezzano · GitHub
<froggey> ok, maybe they do, but I've made a bit of an effort
<mjg> so you don't do adaptive spinning?
<froggey> nope
<mjg> suck/10
<froggey> D:
<mjg> but rwlocks named mutexes definitely take the cake
<mjg> like what even happened there
andydude has joined #osdev
goliath has joined #osdev
nur has joined #osdev
FreeFull has joined #osdev
bliminse has joined #osdev
<mjg> so i'm looking at the profile
<mjg> that folio patchset came with 2 atomics
<mjg> to ref/unref folio
<sham1> folio -> polio
<mjg> OH
* gog collapses
<sham1> oh no
<mjg> lmao this is fucking retarded
<bslsk05> ​elixir.bootlin.com: shmem.c - mm/shmem.c - Linux source code (v6.4.7) - Bootlin
<mjg> if folio was found, it is returnedl ocked
<mjg> first thing they do in the fast path is unlock it
<mjg> LOL
* mjg doublechecks if this is not a bsd kernel
zxrom_ has joined #osdev
<gog> gotta go fast
zxrom has quit [Read error: Connection reset by peer]
<sham1> GNU/Sanic
<gog> and to think if UC Berkeley didn't get sued by AT&T we'd all be using BSD rn
gareppa has joined #osdev
nvmd has joined #osdev
dude12312414 has joined #osdev
<heat> i would be fuckin hrm
<heat> not using bsd
<heat> i would be using windows
<heat> or linux-based macOS
<Ermine> We all could use onyx
<mjg> cause without a rebel
<Ermine> gog: may I oet you
<Ermine> pet*
<heat> mjg, btw you need to lock that folio anyway in shmem_get_folio_gfp
<mjg> it plausibly can e hacked to work with membarz instead
<mjg> point though is that the codepath is PESSIMIZED
<Ermine> What is folio
<sham1> Clearly the OS we'd use without Linux would be VMS
<heat> a folio is a collection of pages
<heat> struct page*'s
<mjg> you lock/unlock and ref/deref the folio and then lock/unlock the page
<mjg> that is 4 more atomics than you should need to do
<Ermine> Ah, cool name
<mjg> but it is plausibly hard to fix
<heat> so back in the good old days you asked for a compound page using __GFP_COMP and then you had struct pages that pointed back to the "Head" of the composite page, that essentially treats all those pages you allocated as a single one
<gog> yes
<heat> so this meant shit like void page_mark_dirty(struct page *p) { if (is_compound_page(p)) {page_mark_dirty(p->head); return;} p->flags |= DIRTY;}
<gog> my band name is going to be folio
<heat> which is horrendous
<heat> so willy unfucked it and made up a new type
<heat> that actually atm completely overlays struct page
gog has quit [Quit: Konversation terminated!]
<sham1> Shakespeare's folios
<heat> ima write code rn
zxrom_ is now known as zxrom
<sham1> I'll also write some code
<zid> I'll watch
Bonstra_ has quit [Quit: Pouf c'est tout !]
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
Bonstra has joined #osdev
vinc has quit [Read error: Connection reset by peer]
gog has joined #osdev
zxrom has quit [Ping timeout: 246 seconds]
<heat> hi gog
<gog> hi heat
<mjg> hi mg
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
heat_ has joined #osdev
heat has quit [Remote host closed the connection]
<sham1> And it suddenly got cold
<heat_> hi gog
<heat_> hi sham1
<gog> hi heat_
<nikolar> hi gog
<gog> hi nikolar
<sham1> Oh hi Mark
zxrom has joined #osdev
<sham1> My hands are typing words! Haaaaands!
antranigv has quit [Ping timeout: 244 seconds]
<gog> meow
xenos1984 has quit [Ping timeout: 246 seconds]
vinc has joined #osdev
ajunior has joined #osdev
zxrom has quit [Remote host closed the connection]
zxrom has joined #osdev
<zid> sham1: weird, I use my nose
vinc has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
Left_Turn has joined #osdev
<zid> https://i.redd.it/yb20rnl94ifb1.jpg This poor drill bit is sick and has a bandage :(
<bslsk05> ​i.redd.it: Reddit - Dive into anything
Turn_Left has quit [Ping timeout: 246 seconds]
Harriet is now known as RunxiYu
RunxiYu is now known as Harriet
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 260 seconds]
heat has joined #osdev
heat_ has quit [Read error: Connection reset by peer]
antranigv has joined #osdev
awita has quit [Quit: Leaving]
gareppa has quit [Quit: WeeChat 3.8]
<gog> somebody doesn't own a $5 depth collar
<zid> Why would you buy a gadget
<zid> when tape is available
<zid> I mean
<FreeFull> When precision doesn't matter
<zid> drills don't have precision anyway
<zid> it's not an endmill or whatever
* sham1 techno beats
CaCode has quit [Quit: Leaving]
vinc has joined #osdev
nur has quit [Ping timeout: 260 seconds]
<heat> poll is fucking horrendously unspecified for anything that's not a regular file or a pipe
<heat> shit interface
<heat> shinterface
vinc has quit [Read error: Connection reset by peer]
<Ermine> specify it and propose to austin group
<Cindy> today i had a wonderful day
<Cindy> pulseaudio obliterated my laptop's speakers
<Cindy> :D
<clever> that reminds me of a hw bug/limitation in an old laptop
<clever> every time a terminal received a bel character, it had to play a beep from the onboard speakers
<clever> but i was using headphones
<heat> Ermine, posix really doesn't have authority here
<heat> it lacks authority mostly everywhere
<clever> it only has 1 DAC, so it would switch from headphone->speakers, play a beep, then switch back
<clever> and leak a fragment of whatever i was listening to
<sham1> Hopefully you didn't freak anyone out with any weird porn or whatever
<heat> yeah
<heat> normal porn is fine
<sham1> Yeah
<heat> weird porn though? straight to jail
<clever> i wasnt crazy enough to watch porn with somebody in the room :P
<heat> it'd be ok if it were normal
<clever> another laptop was worse though
<Cindy> pulseaudio decided one day i don't deserve laptop speaker privileges
<clever> it played the pc-beep over the headphones, at 1000% volume, lol
<Cindy> it overamplifed my audio because of a lost bluetooth packet
<clever> so you hit one wrong key in the terminal, and now your deaf for 10 seconds
<sham1> PA does some weird audio mixing sometimes
dutch has quit [Quit: WeeChat 4.0.2]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
vinc has joined #osdev
valshaped742 has quit [Quit: Gone]
stolen has quit [Quit: Connection closed for inactivity]
valshaped7424 has joined #osdev
bgs has quit [Remote host closed the connection]
dutch has joined #osdev
danilogondolfo has quit [Remote host closed the connection]
wblue has joined #osdev
<geist> sortie: is your irc down, or am i just having toruble connecting to it?
<gog> hi
<geist> hmm, i can get to it from my personal network, so thinking maybe irccloud got klined a few weeks ago
<nortti> oh irc.sortix.org is down, something went wrong with the VM and sortie is on holiday atm so it's been down for a bit and will be down until he gets back
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<geist> ah interestng, i just telnetted to it locally and it went through, but maybe i just telnned into some sort of redirector
<geist> the socket connected, but i didn't try speaking irc. anyway, kk
<nortti> my guess would be that one hits ipv4 (goes directly to the VM) and one hits ipv6 (routed through a simple proxy that will jsut sit there ignoring everything)
<nortti> *just
<geist> yah was via ipv6
ajunior has joined #osdev
<mcrod> hi
<geist> hiya
<mcrod> i hate ub. i hate ub. i hate ub.
<mcrod> day 2 of dealing with this
<mcrod> tomorrow will be day 3
<mcrod> in case people are wondering: I do `static struct this_is_a_struct name;`, and I'm watching in the debugger the members of `name` being constantly written over
<mcrod> which looks like the memory area in that area and around it, is getting trashed
<mcrod> unresponsive to breakpoints, in some cases evading detection entirely
<zid> if the debugger isn't catching it, either you don't have hardware watch points, or it's not the program doing it. i.e interrupts
<mcrod> no I mean
<mcrod> data breakpoints are HIT
<mcrod> but they're nonsense
<mcrod> sometimes it'll be a _iar_zero_init thing
<mcrod> sometimes it'll set the program counter to... an address pointing to a uint8_t[][]
<mcrod> this is deterministic, too
<mcrod> no access to -fsanitize=undefined or -fsanitize=address
<zid> -fanalyzer? :p
<mcrod> nothing
<zid> oh wait, it isn't C is it
<mcrod> it is C
<zid> oh I thought it was C++
<mcrod> no
<mcrod> firmware is C99
<zid> My gut says interrupts are to blame
<mcrod> it's certainly possible
<mcrod> except I have no idea how to fix it
<zid> it explains why the debugger doesn't see useful info
<mcrod> this is where I start to falter in my debugging ability
<zid> potentially, at least, maybe you're debugging at a true bare metal level and it would catch those too
<mcrod> interrupts are to blame, maybe, but how the fuck do I fix _that_
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<zid> better debugging, or audit the interrupt code
<mcrod> I set a write data breakpoint for the address, and was stunned that I'm seeing nothing but garbage
<mcrod> the memory view doesn't tell me anything either
<mcrod> to your point, I'm watching the int32_t increase by 500 every time
<mcrod> so maybe it *is* interrupts doing something stupid
<zid> seeing nothing but garbage might be the result of the debugger not getting to see the interrupt handler run, was my thought
<zid> it suddenly notices the value has changed at some other point
<mcrod> what's interesting is
<mcrod> first off, what I'm debugging is a slave component
<mcrod> if I *enable* a breakpoint, the master component will fail to communicate with this slave component, *even though I don't see the breakpoint being hit*
<zid> I wonder if it got suspended :P
<mcrod> i don't know. i don't know what the problem is.
<zid> can you not debug the master?
<mcrod> i can
<zid> Sounds like it might be shitting on the slave's memory
<mcrod> I also know we do some funky oddities
<mcrod> for example, we have a uint8_t cmd_buffer[num_commands]; thing
<mcrod> actually, I won't go into that until I look at it again
<mcrod> because even typing it out is gibberish bullshit
<mcrod> most i'll go is it looks like a weird attempt to avoid needing two arrays for eeprom write/read requests
<mcrod> which is so fucking far out to lunch it's not even funny
austincheney has joined #osdev
<austincheney> would this be a wrong channel to ask about writing terminal emulators?
<mcrod> no
<austincheney> excellent, I am writing a JavaScript based terminal emulator for the browser. It seems that in terminal applications there is anormal mode with a prompt and then there is an interactive mode for things like IRSSI, VIM, Nano, and so forth. How should a terminal know to transition between these modes?
<zid> that's.. nothing to do with terminal emulators?
<zid> That's just whether bash/sh/etc is connected to the tty or vim is
<zid> what the terminal does is strictly controlled by what the applications send to the tty, ansi escape codes + plaintext
<zid> The way unix does it is just that stdin/stdout of `login` are connected to the tty, which then runs your shell (/etc/passwd tells it what to run), and the fork() it does hands stdin/stdout over, repeat
<zid> (bash might then run nethack via fork, nethack's stdin/stdout are now connected to the tty)
<zid> Your terminal emulator is the *other* end of the tty, the wire leading into the display, not the software end that unix controls
<heat> i think they're talking about the distinction between cooked mode and raw mode in the tty?
<zid> maybe? but that's still just nothing the tty has to care about
<zid> the terminal I mean
<heat> depends if they're emulating the tty too
<heat> javascript-based terminal emulator for the browser sounds like it may
<zid> yea, on the tty end there's usually a bunch of stuff like isatty() etc for applications to determine if they're being ran interactively etc?
<zid> otherwise you end up with colours in your pipes
<austincheney> Node probably has a library for this. I need to check
<austincheney> I already have basic support for ANSI escape sequences for basic colors but not extended colors
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<austincheney> is there an ANSI escape sequence that tells the terminal application when to engage the tty versus using a prompt?
<heat> i don't know whta that means
<heat> you're always "engaging the tty"
heat has quit [Remote host closed the connection]
<zid> seems like you didn't understand what I said
heat has joined #osdev
<zid> This is all a terminal sees.
<zid> Everything else is software.
<heat> yeah
<zid> If you're emulating a terminal, all you get is text in, and text out (from its keyboard)
<zid> you draw the text to the screen, sometimes processing special characters like \n
<heat> namely, the tty layer, sometimes with ncurses sprinkled on top
<zid> Terminals are *completely* dumb, they don't run programs, or have prompts, or anything
<zid> they just draw characters that come in through the serial cable
<heat> for shit like irssi the stack looks something like "app <-> ncurses (provides TERM specific escapes, manipulates the tty) <-> tty layer (does \n -> \r\n, sometimes cooked input, etc) <-> terminal emulator/real terminal (takes bytes and makes the go brrrrrrrrrrrrrrrrrr)"
<heat> doing a standard printf("Hello World!\n"); always goes app -> tty -> terminal
<zid> 'the prompt' is a user process called the shell
<zid> The terminal is *right* on the other end, connected over basically a phone line
<heat> yeah, tho line discipline is part of the tty layer
<zid> yea the dashed box is the tty bits
xenos1984 has quit [Read error: Connection reset by peer]
<heat> i wouldn't have them separated in my imaginary much-good diagram
<zid> they're not
<zid> they're all inside the dashed box as tty/
<heat> UART is not part of the tty AFAIK
<zid> yea I suppose not
<heat> even though they're kind of connected in linux, including the source code location
<zid> This is like the map of uk/britain/british isles/etc :p
<heat> i prefer to think of the tty as an in<->out blackbox that processes whatever input it gets and spits something out for the other end
<zid> yea I just imagine it as "whatever software gook needs to happen to turn in dx, al / out dx, al into read/write"
<heat> where the backend can be a serial terminal, virtual terminal in the kernel, pty in userspace, etc
Burgundy has quit [Ping timeout: 245 seconds]
ajunior has joined #osdev
andydude has quit [Quit: Leaving.]
xenos1984 has joined #osdev
nvmd has quit [Quit: WeeChat 3.8]
vinc has quit [Read error: Connection reset by peer]
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<mcrod> now
<mcrod> it is time to play dark souls
<gog> hi
<gog> my soul is p dark
<mcrod> gog: i need a hug
<mcrod> it is urgent
* gog hug mcrod
<gog> i got you buddy
* mcrod hug gog
<Cindy> hey gog
<Cindy> i need a hug too
* gog hug Cindy
<gog> i got you girl
* Cindy hugs gog and cries
<zid> gog doesn't got me :(
* gog hug zid
<gog> wrong buddy
<zid> gog avoids me because of my comically oversized genetalia, just like everybody else!
<mcrod> zid, we love you
* mcrod pet
<gog> you know what i'm gonna just
* gog unhug zid
<zid> see!
<zid> It goes all the way from a to z on my keyboard :(
<mcrod> so...
<mcrod> i cannot warp back to pinwheel
<mcrod> since i apparently didn't see the ladder...
<mcrod> fuck.
<zid> pinwheel does not have a bonfire no
<mcrod> i know that
<mcrod> but
<zid> doesn't the ladder appear in the cutscene
<mcrod> yes
<mcrod> but
<mcrod> I did not see it at the time
<mcrod> seeing no way out I homeward boned
<zid> seems it doesn't
<zid> but it animates and makes a noise
<mcrod> why is frampt asleep
ajunior has joined #osdev
<mcrod> do I hit him
<zid> cus he's a sleepy mofo
<zid> you never actually have to talk to him ever
<zid> He's entirely optional
<mcrod> o
<zid> You should learn
<zid> the catacombs skip, it's super trivial
<kof123> so i watched video heat linked what we lost with unix. i didn't think it was bad, but scratches the surface maybe :/ just seemed to say ppl seem to get trapped into ways of thinking, so conway's law IMO
<zid> basically, as you run into catacombs from the bonfire near the lever, you get attackd by 2 skeletons, then go over the bridge
<kof123> or superstition can be defined as: doing things without knowing why, original reason lost
<zid> under the bridge is the big pit room with the bonwheels that lead to pinwheel
<zid> and you can just drop from the bridge to a very obvious ledge, twice, to get there
<zid> and skip going through all the tunnels
<mcrod> ok
<mcrod> i will do so
<zid> there's an item down there too, that you can only reach this way, so it's like.. semi intentional
wblue has quit [Quit: wblue]
edr has joined #osdev
<kof123> " there is anormal mode with a prompt and then there is an interactive mode" this sounds like buffering, e.g. line buffering for the prompt
<mcrod> zid: excellent, worked
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<zid> the blight town one is cooler
<zid> firelink -> new londo ruins -> new londo ruins -> valley of the drakes -> blighttown -> throw yourself off the first available ledge and hit everything on the way down like a ragdoll -> land in the swamp
<zid> heat can confirm that that is what happens
<mcrod> ok
<mcrod> i hate tomb of the giants
<zid> good
<zid> It's scary as shit
<zid> and a total maze without the skips or collision viewer
<zid> good luck
<heat> what?
<heat> confirm what?
<zid> firelink -> new londo ruins -> new londo ruins -> valley of the drakes -> blighttown -> throw yourself off the first available ledge and hit everything on the way down like a ragdoll -> land in the swamp
<heat> the blighttown skip?
<zid> throw arms up in Y shape, get 7/10 from the russian judge
<zid> but 10 from everybody else
<heat> i don't see why new londo ruins -> new londo ruins
<heat> but yes that seems plausible
<zid> because I am silly
<heat> i usually don't throw myself off because im not good
<zid> I was thinking of it in my head like when you say "firelink to londo, londo to drakes, " then swapped system
<heat> so i do it slowly
<zid> half way through
<mcrod> fuck...
<mcrod> FUCK
<mcrod> patches
<heat> haha
<zid> good
<zid> pick up the lantern
<zid> enjoy being able to see
<heat> bro do you have the fire keeper yet?
<mcrod> yes
<mcrod> she's alive
<heat> good
<heat> why are you following tutorials you casul
<zid> has the FAP ring too then presumably
<zid> FAP ring is FAP
<mcrod> i hate the skull lantern
<mcrod> and yes I have FAP
<heat> cry
<zid> why, aren't you STRENGTH BOI
<zid> you can deal with 1 handing your weapon
<heat> you can turn around and go to lost izalith
<heat> get your light hat there
<gog> computer operating systems development chat
<zid> cosdc?
<zid> doesn't sound likely
<gog> cosdc
<zid> this is overachievement souls: dark, extra virgins
<heat> dong
<gog> does anybody like makeup or smth
<zid> I've never tried
<gog> you should
<mcrod> i... i can't wear the lantern
<zid> my skin is fucked up though maybe I should
<mcrod> ?
<mcrod> ?A???A???
<zid> it's a shield
<mcrod> oh
<mcrod> i see
<mcrod> ok
<heat> it doesn't actually protect
<heat> btw
<gog> what about shopping
<heat> just in case you accidentally try it out with the giant skeleton
<zid> I don't have money
<zid> so no shopping
<zid> only busking
<gog> oh
<heat> i like shopping
<gog> let's go shopping
<zid> I like the concept of shopping, never done it
<heat> no
<heat> this is #darksouls not #estrogensouls
<gog> sir this is #osdev
<heat> it is not
<zid> it is
<zid> overachievement souls: dark, extra virgins
<gog> o...s...d.....e....v
<gog> ohhhhh
<gog> my mistake
<zid> oestrogen
<heat> this is kinda a silly idea but formally you need a write memory barrier after setting up a new thread's state right?
<zid> why?
<heat> you will probably need a lock to make it runnable so not quite, but...
<zid> if you scheduled it to run on a different cpu, I guess?
<gog> is the new thread being sleep'd right away and might execute on another cpu
<heat> yes, if you don't have any release stores
<zid> if it's the cpu you're on, you shouldn't, unless you're on an alpha
<zid> in which case your writes can appear before you've made them
<gog> alpha so fucken fast
<zid> or not appear until after you've read them
<heat> it's not an actual problem because making a thread runnable likely requires some sort of release store in a lock
<gog> this is not my beautiful cache, these are not my beautiful memory maps
<gog> well
<gog> how did i get here
<zid> you jumped from catacombs
<gog> that was a talking heads reference
<heat> you jumped from the catacombs down to the demon ruins
<heat> wait, no
<gog> wait are we on dark souls again
<heat> you've spawned in ash lake
<gog> i played that game for 5 minutes
<heat> far away you see a dragon and a hydra
<heat> but you don't care, you're just there to enjoy the landscape
<zid> A skeleton nibbles your ankles, you kick it away, its cranium turns to dust.
<zid> You feel a wellspring of power suffuse your body.
<gog> do you use main with argc, argv and envp
<zid> eww envp, disGASTING
<gog> ok so that's not a thing people do anymore then
<zid> what are we, ld.so
<gog> sort of actually
<gog> serving a similar function
<zid> that's the only situation I can think of for it, at least
<mcrod> FUCK
<mcrod> FUCK
<zid> he died before finding the bumfire?
<mcrod> yes
<zid> Good news, you went past it
<mcrod> i got to the light
<zid> so you can get it ez next time
<mcrod> now I have to do this all over again..
<heat> gog: yeah usually i use int main(int argc, char **argv, char **envp)
<mcrod> past it _where_
<zid> just before patches
<mcrod> WHAT
<zid> you slide down the coffin lids
<mcrod> yes
<gog> is envp safe to mutate
<heat> no
<zid> and there's just the barest little hint of the top of a ladder
<zid> along the outside edge
<heat> gog: well, it depends
<zid> down that ladder is just a ledge with a bonfire
<zid> envp in sysv is just on your stack
<heat> safe? yes correct? no
<heat> yeah
<zid> same with argv
<zid> but the _start interface *isn't* the C interface, so you can't just declare start as (int argc, char ..)
<zid> fun fun
<heat> _start has no arguments in sys v
<gog> it doesn't seem to have any parameters in the calling convention anyway
<zid> yup, it's a weird bespoke interface
<heat> you get argc, argv and envp through %rsp/%esp/%sp/whatever
<zid> It could trivially have decided to put the stack addreses into rdi/rsi but neglected to bother
<zid> so you have to write asm stubs, yay
<gog> that's fine i like writing asm stubs
<gog> it soothes me
<zid> THUNK
<gog> tubthunking
<zid> I drink a lager drink
<mcrod> zid, i love you
<zid> you're whalecum
<gog> ew
<bslsk05> ​github.com: Onyx/kernel/kernel/binfmt/exec.cpp at master · heatd/Onyx · GitHub
<gog> this is why i will never swim in the ocean
<zid> fish have sex in that
<heat> so you don't even get argc :))
<gog> and we dump our shit and plastic in it
<gog> that's all it's good for
<gog> and imploding rich people
<zid> It's nature's garbage dump
<heat> you implicitly need to fucking iterate through all args and envp before getting the auxv
<zid> even nature uses it as nature's garbage dump
<heat> i forgot how stupid this thing was
<zid> disolve it in 10e30 liters of water and nothing is a problem anymore
<gog> kinda hard not to when all the water ends up back in it at some point
<zid> you have a trillion liters of crude oil? no problem, it's still diluted to 1e20
<zid> and basically undetectable
Matt|home has quit [Ping timeout: 246 seconds]
<heat> 10e30 is 1e31
<zid> I accidentally the 0 key
<zid> I meant 1*10e30 but realized I hate that notation, half way through
<gog> so glad homeopathy isn't true
<mcrod> found another bonfire, awesome
<zid> homoeopathy
<heat> mcrod you found the second bonfire?
<gog> no i like homoeopathy
<gog> that's cool shit
<heat> i couldn't find that shit last time around so i just ran for it
<zid> no that's homopathology
<heat> had a 20 second route from the first bonfire to the beginning of the caves/LEEEEEEEEEEEEEEEEEEEEEROY's spawn
<zid> You know what the leading cause of homopathology is?
<zid> Women are sexy.
<mcrod> heat: yes
<heat> btw you can't warp to that one
<gog> yeahhh
<zid> it took me 10 years to take the bonfire in catacombs
<zid> I had no idea it existed and didn't care
<zid> they added ANOTHER one in remaster
<heat> tip for nito: stone armor/havels, tank hits, when he does the miasma attack just shield up and let it kill the skellies
<zid> lol shield up
mhall has quit [Quit: Connection closed for inactivity]
<heat> also be careful and wait for him to get to the front of the arena
<zid> imagine having a shield for nito
<heat> don't fuck with the giants
<zid> instead of a giant hammer the size of a car
<heat> calm down smough
<zid> you can actually emote through his ranged attack btw
<heat> the miasma or the gravelord sword miracle?
<zid> ranged attack
<zid> the gravelord sword miracle
<heat> good to know
<heat> ill try that next time around
<heat> i can never dodge that one
<zid> It's probably harder to gesture through :P
<zid> and I don't even remember which gesture it is you need to use
<zid> oh, blocking with the BKH also makes you immune to it
<zid> because it changes your hitbox just enough that it goes between your legs
<zid> instead of into them