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
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
karenw has quit [Ping timeout: 260 seconds]
edr has quit [Quit: Leaving]
jcea has quit [Ping timeout: 252 seconds]
marr-ales-fios has joined #osdev
marr-ales-fios has quit [Client Quit]
antranigv_ has joined #osdev
antranigv has quit [Ping timeout: 252 seconds]
pabs3 has quit [Ping timeout: 248 seconds]
pabs3 has joined #osdev
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
parabirb has quit [Quit: WeeChat 4.1.1]
parabirb has joined #osdev
eluks has quit [Remote host closed the connection]
eluks has joined #osdev
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
MarchHare has joined #osdev
MarchHare has quit [Ping timeout: 244 seconds]
Lucretia has joined #osdev
<pie_> anyone know anything on or about how to write a custom gdb architecture?
goliath has joined #osdev
<geist> hmmm, dunno. that's probably a fairly large amount of work
<clever> pie_: one project i'm working on is a powerpc emulator, and having gdb built into it would be nice, so ive been looking into that
<clever> another project i need to resume is the rpi/VPU stuff, nothing is known about the jtag, but having a software gdb stub would be useful, but thats even more work, because gdb has zero support for the VPU, and there is the problem of recovering from every failure, enough to do serial comms
GeDaMo has joined #osdev
slow99 has joined #osdev
<heat> beware
<heat> gdb is spaghetti code
<heat> (IIRC lldb is better but not by much)
<nikolar> heat: sure, but if you only deal with a gdb stub, you don't have to care
<nikolar> right?
<clever> heat: for my ppc plans, yeah, i just have to deal with the gdb protocol and providing control of the emulator, but for the VPU project, its an entirely unsupported ISA/arch
<clever> nikolar: oops, ^
<nikolar> ah right
<pie_> clever: hi <3 :D
<pie_> ive made a bit of progress
<pie_> gdb seems to reqire more than nothing to start
<pie_> it seems like the radare2 codebase is ass but it seems more amenable to starting with the basics
<pie_> i realized the gdbserver protocol might have other frontends
<pie_> radare supports it, and they also seem to parse the xml returned by the gdbserver with metadata, though i havent gotten that far yet
<pie_> i _just_ got memory browsing working by enabling the qemu gdbservers physical memory mode
<bslsk05> ​qemu-project.gitlab.io: GDB usage — QEMU documentation
<heat> nikolar: yeah probably
Left_Turn has joined #osdev
pabs3 has quit [Remote host closed the connection]
pabs3 has joined #osdev
<Ermine> is gdb/lldb destined to be spaghetti or is it refactorable?
<nikolar> i mean nothing is destined to be spaghetti
<heat> with enough CBT everything is refactorable
<nikolar> CBT?
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 265 seconds]
netbsduser has joined #osdev
antranigv_ is now known as antranigv
antranigv is now known as antranigv_
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 265 seconds]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 248 seconds]
<Ermine> windows started to BSOD often recently
<geist> ruh roh
<geist> i'd test your ram before you start to do anything else
<heat> it could also just be WINDOWS ENGINEERING
<heat> wouldn't happen if you had a SLE license
<heat> opensuse leap could help, for sure. but that SLE license would be the X factor
<heat> this is my expert's opinion
<nikolar> > windows started to BSOD often recently
<nikolar> lol
<nikolar> lol while i was still running windows, i think i shut it off a couple of times during upgrades
<nikolar> so at one point it would start upgrading and then abort
<nikolar> and after a while of that it just didn't bother starting an upgrade
<nikolar> so hot tips right there
netbsduser has quit [Ping timeout: 252 seconds]
antranigv_ is now known as antranigv
antranigv is now known as antranigv_
netbsduser has joined #osdev
vdamewood has joined #osdev
xvmt has quit [Ping timeout: 244 seconds]
xvmt has joined #osdev
Turn_Left has quit [Read error: Connection reset by peer]
Left_Turn has joined #osdev
antranigv_ is now known as antranigv
pbase has joined #osdev
pbase has quit [Ping timeout: 276 seconds]
<the_oz> They refuse to upgrade my major version
<the_oz> I really can't be fucked - retards
<n00by_> oh no, i missed last night's fun beer party discussion :(
<n00by_> i heard windows NT just suffers from NIH, can't confirm
<n00by_> heat: is there a way to get gdb/lldb working without ptrace?
<heat> locally? no
<heat> remotely? with a gdb stub, but that kind of sucks
<n00by_> yea, i wouldn't even start with the remote serial protocol first
<heat> gdb basically needs intimate knowledge of your operating system, how to drive ptrace, how to read coredumps
<n00by_> i mean, i heard a lot of times, they were saying stuff like gdb core infra relies on ptrace being there
<heat> then needs intimate knowledge of the architecture, of course
<n00by_> ye
<heat> it doesn't explicitly rely on ptrace(), but relies on something ptrace-like to be available
<n00by_> sure, yeah makes sense.
<n00by_> thanx
<heat> you're welcome bud
<heat> i do have to say
<heat> CVISE is OP
<heat> CVISE OP W's IN THE CHAT
<n00by_> port of c-reduce? compiler fuzzing thingy?
<heat> compiler reducing thing yeah
<n00by_> for one thing, fancy stuff, ngl lol
<heat> yeah i think i found a regression for gcc-15
<n00by_> shit. well heat's a pro, afterall
<heat> fax
<nikolar> lol i found a couple of regressions in gcc manually so
<nikolar> heat: btw do you have gdb running on onyx
<heat> uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
<heat> Kind Of
<heat> i don't have ptrace, but my kernel can crap out coredumps, and gdb can understand them
<heat> and that's like, good enough
<nikolar> nice
<nikolar> well you aren't writing programs on onyx (yet) so yea
<heat> yes i am
<heat> i just don't use debuggers :p
<nikolar> kek
<heat> printf debugging ftw
<nikolar> printf debugging ftw let's go
<heat> seriously though
<heat> debuggers are much less useful than people think
<nikolar> i agree
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 260 seconds]
j00ru has quit [Ping timeout: 244 seconds]
<n00by_> (they're useful for dummies like me who can't program in machine code)
<nikolar> printf debuggin mate
<nikolar> works in c,c++,rust,python,javascript
<nikolar> etc
<n00by_> sure, but dont you write asm? :P
<n00by_> i know you do
<n00by_> say it
<heat> not really
<nikolar> what's that got to do with debuggers
<nikolar> i read much more asm than i write
<heat> yeah
<heat> the compiler is a much better assembly writer than me
<nikolar> indeed
<nikolar> that's its whole job
<heat> i'm just a hooman IDIOT that DOES NOT KNOW FUCKING CPU INSTRUCTION SCHEDULING FOR ALL INTEL ARCHITECTURES SINCE 1956
<heat> THE BOZO
<nikolar> don't forget amd
<nikolar> and arm
<nikolar> and risc
<nikolar> *riscv
<nikolar> etc
<heat> with riscv you don't even need to go that far
<heat> oh yeah, you're a riscv fan? say all riscv extensions ever
<nikolar> kek good point
<n00by_> you guys are right, but like it doesn't hurt to know. i have zero solid comp arch knowledge essentially.
<nikolar> well, start learning
<nikolar> how do you think all of us figured things out
<n00by_> rftm :3
<nikolar> not quite
<n00by_> asking?
<heat> kind of
<n00by_> rtfm ye
<nikolar> i never read the whole intel programmer's reference manual
<heat> all of the above
<n00by_> nobody did, but im sure nikolar knows how the pipeline is structed roughly :P
<n00by_> structured
<the_oz> by the time I figure out how a cpu xchedules internally the cpu will be old trash
<nikolar> well, if you wonder how modern cpus work
<nikolar> it's far more complicated than a simple pipeline
<n00by_> the_oz: fake news
<the_oz> no it isn't
pbase has joined #osdev
<the_oz> I think you're overestimating my capabilities
<n00by_> nikolar: roughly speaking, a simple OOO processor is not too hard to implement in verilog
<heat> yeah
<n00by_> ofc nehalam is hard
<heat> the problem is that modern CPUs aren't simple
<nikolar> not in the slightest
<heat> have you heard of the next line prefetcher
<nikolar> even just basic pipelined processors are nontrivial to implement if you care about performance
<nikolar> let alone an ooo core
<n00by_> true
<heat> fwiw the cortex A53 is still only dual-issue
<heat> it's also slow as fuck
<nikolar> yeah it's the offical "arm shit core"
<n00by_> but hey, i'm sure agner knows more about the vectorizer at least :P
<nikolar> what do you mean
<n00by_> the manuals he put out
<n00by_> on the uarch
<n00by_> are kinda cool
<heat> dude you can know more or less about given cpus and given architectures
<heat> it doesn't mean it will never be obsolete
<heat> and you will guaranteedly be surprised
<n00by_> true
Left_Turn has joined #osdev
<n00by_> > arm shit core
<n00by_> LOL
<nikolar> to be fair, there are shittier cores
<n00by_> ppc?
<n00by_> how well does it do on specint
<nikolar> but they are stuff like cortex m0
<nikolar> which are for microcontrollers
Turn_Left has quit [Ping timeout: 245 seconds]
<bslsk05> ​www.spec.org: First Quarter 2025 SPECaccel 2023 Results
<heat> yeah a53 is a low power core
<heat> and a cheap one probably
<heat> they still use the a53 and newer variants on phones for stuff like low power modes
<nikolar> heat: have they updated the a53 to be more efficient or something
<heat> it just is efficient
<nikolar> you'd think they could squeeze a bit more out of it
<nikolar> condisering how old of a design it is
<nikolar> i guess it's not a priority
<heat> i mean, it's an old model
<heat> my new phone has a bunch of a520's for this kind of stuff
<nikolar> yea
<heat> apparently went a53 -> 55 -> 510 -> 520
<nikolar> ah cool
<nikolar> n00by_: btw if you're curious, https://chipsandcheese.com/
<bslsk05> ​chipsandcheese.com: Chips and Cheese | Substack
<nikolar> it's got pretty good analyses and benchmarks of various microarchitectural implementations
<heat> it seems that the rpi 5's a76 roughly corresponds to a samsung chipset from 2020
<heat> so they're a few years back
<nikolar> it's not even *that* efficient as far as arm socs go
<heat> which one?
Turn_Left has joined #osdev
<nikolar> all of raspis
<n00by_> what do yall think about the cool kids who implement a custom riscv OOO core on an fpga and try to learn more about cpus that way, is it worth it?
<nikolar> i mean sure, if you find it worth it
<n00by_> :)
<heat> yeah nikolar the rpi 5 is HIGH PERFORMAN
<heat> it even needs a freaking fan
<nikolar> it's so HIGH PERFORMAN that it got cut off
<heat> hm?
Left_Turn has quit [Ping timeout: 252 seconds]
<n00by_> orange pi is more expensive though, found lot of netbsd shills using orange pis
<heat> did they throttle it or something?
<nikolar> (the CE got cutt off from HIGH PERFORMAN)
<heat> yes
<heat> big letter word too slow to say
<heat> honestly 2020 mid range phone is kinda fast enough
<heat> for most things
<nikolar> i agree
<heat> would i like a 96x ampere machine? i mean yeah if you insist i'll take it
<nikolar> like what do people even do on phones generally
<nikolar> scroll video/photo feeds and browsers
<n00by_> cant do anything interesting unless the bootloader is unlocked :(
<n00by_> and a way to flash the stock firmware
<nikolar> well, search for phones where you can unlock the bootloader then
<n00by_> pixels, what else
<heat> new android is supporting VMs
<n00by_> lol
<heat> you can also unlock the bootloader on samsung
<nikolar> and xiaomis
<nikolar> (you need to wait a month though)
<the_oz> I need a low power thing to shut down entire rack for when smol mode
<nikolar> heat: what's the justifictaion for adding vms
<heat> i don't know, i'm not a google product manager
<the_oz> right now I leave my "desktop" running all night and I shouldn't
<heat> they're adding linux terminals with actual debian
<heat> running under KVM I assume
<n00by_> the_oz: thats literally how i use irc, no bouncers lol
<the_oz> which is temporarily a proliant g6 360
<nikolar> oh did upstream android get some desktop type of ui thing recently
<the_oz> which is not great
<nikolar> is that why they care about normal linux now
<heat> no and no?
pbase has quit [Ping timeout: 260 seconds]
<heat> wdym normal linux
<nikolar> debian vms like you said
<heat> kernel-wise google is upstream first
<heat> has been for like, 10 years maybe, maybe even more
<n00by_> is it true that arm has special instruction to support native javascript
<heat> no
<nikolar> the instruction in question is some float conversion thing
<nikolar> and it's an extension iirc
<n00by_> ye
<n00by_> that
<heat> that sort of stuff is routine
<heat> customers ask for features, ARM/Intel/AMD give them
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 245 seconds]
goliath has quit [Quit: SIGSEGV]
<nortti> aiui it's basically a "do it like x86 does", and the javascript connection is that ecma standardized existing practice which happened to be whatever the browsers were doing, running on x86 systems
edr has joined #osdev
<nikolar> it's still funny that it's got js in the instruction thuogh lol
<nikolar> > FJCVTZS is "Floating-point Javascript Convert to Signed fixed-point, rounding toward Zero".
<nortti> aye
<n00by_> nikolar: jizz-elle
<nikolar> eh?
<nikolar> oh yeah that's a thing too
<heat> nikolar: sex penis joke funny subscribe
<nikolar> heat: you won't get me to pay for the sles license, no matter how many sex penis jokes are included
<heat> i meant subscribe to me
<heat> i don't think SLES has sex penis jokes funny
<nikolar> dang
<heat> now, RHEL? chock full of them
<heat> half of them added by mjg
<nikolar> who cares about rhel though
<heat> that is quite correct
<n00by_> GeDaMo: thats neat, i heard its a rough sketch but does a reasonable job of laying out the internals.
<GeDaMo> Yeah, it's a high level overview but gives an idea of the complexity
<nikolar> huh there are int vect alus
<mjg> i only added a kernel patch to rhel which changes the panic message to also suggest migrating to SOLARIS
<mjg> it's a dick move, but not a penis joke
<nikolar> but i can't see fp vect alus
<GeDaMo> FP FMA, FP DIV
<nikolar> great, heat, summoned him
<nikolar> GeDaMo: oh duh i am dumb
<nikolar> that certainly isn't x87 fpu
Left_Turn has quit [Read error: Connection reset by peer]
<GeDaMo> n00by_: do you know of Ken Shirrif's blog? He does reverse engineering of old chips, including a series on the 8086
<nikolar> no ooo cpus yet though :P
<GeDaMo> If you're interested in OoO, there's a book on the CDC 6600, one of the first machines with OoO
<bslsk05> ​www.righto.com: Ken Shirriff's blog: 8086
Left_Turn has joined #osdev
<heat> mjg: mofer, i was thinking earlier
<heat> what was the problem with broadwell and the next line prefetcher
<heat> that made it so crap for broadwell?
<n00by_> GeDaMo: i do, hes AWESOME <3
<n00by_> one of my favorite blogs on the planet
<n00by_> real shit
<nikolar> can't wait for him to get to the pentiums
<nikolar> :P
Left_Turn has quit [Read error: Connection reset by peer]
* n00by_ knows GeDaMo is always a source of goldmines and authoritative material :P
<GeDaMo> :P
Left_Turn has joined #osdev
<mjg> heat: i don't know what they do specifically, i do know it results in tons more traffic in a numa setting
<mjg> broadwell is an obsolete yeller anyway, what brought this up again
<heat> thanks big mofer
<heat> nothing in particular, we were discussing micro-architectural details here
<heat> and how things were super duper complex
<heat> and i remembered the per-vma next line prefetching incident
<mjg> read some material by agner fog
<mjg> it's all bullshit problems
<mjg> i think the most iluminating statement was by jim keller, who said when a new uarch is being worked on the sales people want a guarantee it will be faster at everything than the old stuff
<mjg> ... and that this can't be guaranteed
<nikolar> obviously
<nikolar> sales people just suck
<mjg> not very obviously, it used to be that new uarch == turbo faster
<mjg> but this might have ended roughly when you were born
<n00by_> lol
<n00by_> agner is decent though, cant expect too much. he does archaeology for a living so
<nikolar> yeah but that hasn't been the case for decades so yeah
<nikolar> obviously
<nikolar> n00by_: i'll tell you a little secret, but most programmers who work on open source software don't do it as a job
<heat> well
<heat> it depends
<heat> the vast majority of people working on the linux kernel, gcc, llvm, glibc are all being paid to do so
<mjg> given the quality of the work they should be paying to include their changes
<n00by_> nikolar: there was a guy who used to do a lot of defcon and blackhat talks on x86 internals, domas im sure you know. he became quiet after intel hired him
<heat> mjg: some are :v
<nikolar> n00by_: don't think i've heard of him
<bslsk05> ​www.linkedin.com <no title>
<n00by_> cool guy. admirable tbh.
theboringkid has joined #osdev
<n00by_> everyone has a price i guess
<nikolar> oh xoreaxeaxeax
<n00by_> ye
<nikolar> i've heard of him lel
<n00by_> i knew
<n00by_> well, i didnt get to read any other work like that. it was kinda obvious for intel to hire him. his wife is CISO for canonical lol
<bslsk05> ​www.linkedin.com <no title>
<nikolar> what's a ciso
<heat> security
<heat> like cto but security
<n00by_> ye
<heat> > for canonical
<heat> high school high achiever eh?
<nikolar> lol
<n00by_> corporate-speak basically
<n00by_> canonical hiring is hilarious, yeah
<n00by_> they make you write essays and shit like a fucking uni
<nikolar> yeah heat here had a stab at it right
<heat> way back yeah
<n00by_> LOL
<n00by_> bad luck i guess, heat
<heat> what
<heat> great luck i'm not working there man
<n00by_> ye, lol
<nikolar> lel
<n00by_> > 2024/06/18: Leetcode test at DevSkiller email
<n00by_> GeDaMo: i hate those
<n00by_> > That "don't play games" comment, he pulled that shit all the time, the mind-disrupting emotional suckerpunch.
theboringkid has quit [Quit: Bye]
<n00by_> doesnt sound like a fun place to work at
goliath has joined #osdev
<sortie> It is kinda insane that I can google a sha256 value and it can find occurrences of it across the internet
<heat> What if you bing it?
<sortie> $LC_CORPORATE_DEITY does not allow me
<n00by_> why *would* you bing it ffs
<the_oz> If you had a hash in porn
<the_oz> highly unusual but then you asked
<nikolar> sortie: what did you google for
<sortie> nikolar: e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995
<nikolar> i am getting "MAC Address Lookup" on ddg
<the_oz> Shuttleworth is testing for psychopaths
<the_oz> and poorly
<n00by_> ye
<n00by_> lol
<the_oz> I posit that if your interview process results is late failures a la red marks from deux ex machina
<the_oz> then it's very clearly broken
<n00by_> hey, they even got recommendations from domas and steph, still ended up being rejected
<n00by_> cursed hiring
<the_oz> waste of time and money and shit at refining the process to fail early
<the_oz> because the control freak hates nailing down points
<nikolar> huh
<nikolar> i can't follow this conversation
<n00by_> the canonical hiring process
<the_oz> ack
tronexte has quit [Ping timeout: 248 seconds]
tronexte has joined #osdev
jcea has joined #osdev
the_oz has quit [Ping timeout: 252 seconds]
pabs3 has quit [Quit: Don't rest until all the world is paved in moss and greenery.]
pabs3 has joined #osdev
gog has quit [Quit: K-Lined]
pog has joined #osdev
the_oz has joined #osdev
pbase has joined #osdev
pbase has quit [Quit: Leaving]
jcea has quit [Ping timeout: 252 seconds]
<n00by_> is most of osdeving adhering to posix (just enough) so we can port the exiting tools? are there examples of systems where they wrote everything from ground zero? silly example is templeOS but it's cute though
<n00by_> existing*
<sortie> n00by_: Totally up to you. Lots of people have done different roads. The POSIX road is great if you want to port existing programs. The custom road has also been done, but it becomes difficult as you have to write all programs yourself, or maybe end up with a POSIX compatibility layer
<sortie> n00by_: It's worth having a look at https://wiki.osdev.org/Notable_Projects to study some of the existing notable osdev projects and how they went in different directions
<bslsk05> ​wiki.osdev.org: Notable Projects - OSDev Wiki
<n00by_> thanks sortie :)
<heat> POSIX is good if you want something useful
<heat> !POSIX is good if you want something different
<sortie> I originally went with something else than POSIX in Sortix, but I realized that my custom API was not better than POSIX, and I deleted it and went POSIX instead
<sortie> Unless you're an expert in POSIX and the Windows API and such, you're probably not experienced enough to invent something better :) Which is absolutely possible, btw, just that almost everyone don't know enough to not design something full of leaky abstractions
<sortie> BUT it's valid and fun to just invent your custom API anyway
j00ru has joined #osdev
<n00by_> heat, the "different and useful" combination does seem like it's rare to find, yeh
<n00by_> sortie: appreciate the lead!
<nikolar> if you want to be different, implement win32 api :P
<nikolar> no one other than microsoft is doing that lol
<sortie> doctors do not recommend implementing HWND
<sortie> BOOL STATUS __lpcstr
<n00by_> hey, at least they made big bucks out of it :P
<sortie> OH NO DWORD __it__ LPCSTR WinMain got ME hep
<sortie> DWORD HELP;
<n00by_> lol
<sortie> __cdecl
<n00by_> (plan9 is not posix, crazy exception and apparently a notable one)
<n00by_> they do have the compatibility layer like sortie said
<nikolar> everyone is posix or posix compatible
<n00by_> heh
<nikolar> even microsoft gave up and embedded a linux kernel
<sortie> Plan 9 is very interesting. It was invented by the inventors of Unix, so they had a lot of experience, and the ability to think of something radically different
<nikolar> sortie: more like taking unix to the extreme lol
<sortie> Plan 9 has a lot of great ideas but ultimately it got fairly weird and incompatible for questionable reasons
<n00by_> nikolar: are ken and dennis the godfathers of posix?
<nikolar> you could say that i guess
<sortie> Fathers would be accurate
<n00by_> ye, my bad
<nikolar> sortie: of posix?
<sortie> The guys came up with Unix, which evolved a lot over the decades, and POSIX became a standard that describes what Unix is
<nikolar> how involved were they
<sortie> I honestly don't know, nikolar, but my gut feeling is not-very-much
<nikolar> yea same
<sortie> At that point Unix had become very corporate and they were more doing Plan 9
<nikolar> so i guess godfathers is more appropriate after all :P
<sortie> A different generation had taken over Unix at that point
<sortie> Well, they basically came up with a lot of what the core standard describes
<n00by_> nikolar: which body governs posix? is it like c++?
<nikolar> what do you mean like c++
<n00by_> working group X
<nikolar> something like that
<zid> is there a setof people? yes
<sortie> n00by_: The Open Group and the Austin Group. It's an IEEE standard. You can look it up on wikipedia :P
<n00by_> oh
<n00by_> damn
<n00by_> the IEEE stuff is hardcore
<n00by_> no doubt
<n00by_> generally
<sortie> https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/ ← You can view the latest version of POSIX here
<bslsk05> ​pubs.opengroup.org: The Open Group Base Specifications Issue 8
<sortie> You can also purchase an expensive PDF or get it for free if your university or employer has a IEEE subscription
<n00by_> i dropped out of uni almost a yaer ago lol
<sortie> You can also download a .zip with all the html files too. So like, do not purchase if, unless you really want to for some reason
<n00by_> html works
<sortie> (I got a .pdf back when I was in uni and it's useful for searching)
<zid> > html works
<zid> disagree :P
<sortie> zid: Your disagreement is discarded. html won
<n00by_> why, are serious programmers like zid also pdf shills?
<zid> html did work, now it doesn't, it's a tense thing
<zid> I never mentioned pdf
<heat> zid? a serious programmer?
<heat> cmon
<n00by_> yay i summoned heat
<n00by_> i won
<heat> oh screw you
<sortie> heat is his own reward
<nikolar> lol
<zid> I ribbed html 5 for being overloaded junk, never mentioned pdf
<nikolar> how does it feel to be summoned heat
<heat> bad
<zid> html used to work, because it had tags
<zid> now everything is either a div or a span
<heat> i imagine this is what it feels like to be god
<heat> "Thank God" WHAT
<heat> WHAT DO YOU WANT
<heat> LEAVE ME ALONE
<n00by_> zid: what else do you propose? :P
<heat> zidc
<sortie> hello god I am sortie'\n$(curl https://sortix.org/godkit.sh | sh=
<bslsk05> ​sortix.org: 404 Not Found
<nikolar> n00by_: people should actually use tags?
<nikolar> instead of using <span> and a trillion lines of css?
<n00by_> i never advocated for css
<n00by_> like ever
<zid> You asked what else to do
<zid> there's two options
<heat> how is CSS a problem
<zid> tags, or everything is a div and you use 10MB of css to re-create tags
<n00by_> how do we bring back tags
<n00by_> then
<sortie> semantic markup (html) + stylesheet (css) = the solution, thank you very much
<zid> you don't
<n00by_> :(
<zid> web is fucked
<zid> and will be fucked forever
<nikolar> zid: don't forget 20mb of js
<n00by_> :((
<heat> sortie: write web pages in mandoc?
<heat> 🤨
<sortie> heat: https://pub.sortix.org/sortix/release/nightly/man/ ← COME AT ME BRO
<bslsk05> ​pub.sortix.org: Sortix nightly manual page index
<heat> i mean actual web pages
<heat> not man pages rendered into web pages
<bslsk05> ​pub.sortix.org: installation(7)
MarchHare has joined #osdev
the_oz has quit [Read error: Connection reset by peer]
<heat> sir that's a man page
<n00by_> zid, we still have plain ascii text, though :3
<sortie> heat: https://imgflip.com/s/meme/Always-Has-Been.png ALWAYS HAS BEEN
<nikolar> excuse me, utf-8 ftw
<n00by_> yup
<n00by_> unicode ftw
<sortie> UTF-8 is the one and only encoding, thank you very much. It's UTF-8 until proven otherwise. End of story.
<n00by_> lol
<nikolar> indeed
<zid> So yea, the 'markup' part of HTML has been completely removed from it, in practical usage
<heat> utf-16 ftw
<n00by_> utf-8 is also divine
<heat> uh oh
<zid> so you can no longer say, search for all text in a document that is bold
<zid> because there are no longer bold tags, random words are now in a div, with a bunch of computed style info
<nikolar> heat: was nice knowing you
<zid> as a very simple example
<sortie> heat: Your encoding sedition has been noted. Your punishment is the BOM in the endian of your choosing. Please pick a surrogate.
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
<n00by_> LOL
<n00by_> i like that
<zid> heat can you at least not use wtf-16
<n00by_> heh
<sortie> I implemented UTF-16 the other day for FAT
<nikolar> wait, did i start this by suggesting win32
<nikolar> dang
<sortie> UTF-16 is the worst encoding. Not every codepoint is one code unit, and it's not backwards compatible with ASCII. UTF-32 has one codepoint per code unit. UTF-8 is backwards compatible with ASCII.
<nikolar> indeed
<heat> yes
<zid> WTF-16 is gooder
<heat> but it's also the funniest encoding
<sortie> Like, UTF-16 gets you the worst of both worlds, because you have to handle surrogate pairs, which SO many people don't even know about
<heat> when in doubt, pick the funny
<sortie> Oh and you get endian issues too
<heat> notabug, use little endian
<n00by_> is wtf16 a real encoding? o_O
<heat> not really
<heat> it's a fucked-up utf-16 that the windows kernel accepts
<zid> It's what you get if you handle utf-16 how windows does
<n00by_> LOL
<n00by_> i love you guys
<bslsk05> ​simonsapin.github.io: The WTF-8 encoding
<zid> here's wtf-8's spec doc
<nikolar> lol we didn't come up with it
<heat> he loves you nikolar.
alpha2023 has quit [Quit: No Ping reply in 180 seconds.]
<sortie> Funny thing is that Windows was just UCS-2 originally and it got retconned as UTF-16 which leads to Windows strangeness in bad input
<zid> yea
<heat> UEFI is still ucs-2
<nikolar> uefi sucks, we know
<zid> I always say it's ucs-2 but people go "noooo they changed how surrogate pairs work so it's mo re like utf-16 noww!!!11one"
<sortie> Though those encodings are called WTF, they actually have their domain limited uses
<zid> but it's still broken
<heat> what the fuck do you mean nikolar
<heat> do you want emojis in UEFI?
<nikolar> i don't want bloody ucs2 in eufio
<nikolar> thank you very much
<zid> no I want 7 bi
<nikolar> if you want to do internationalization, do it properly
<sortie> Your basic linguistic plane is imperialism heat
<nikolar> utf8 baby
alpha2023 has joined #osdev
<heat> hi my name is 💀
<zid> if they didn't want to use latin-1, they shouldn't have not invented thai-1 first
<sortie> Putting a 💀 is perfectly valid in a filesystem label
<heat> nikolar: but seriously you know why utf-16 windows is a thing yeah?
<sortie> "homework 💀" is a perfectly reasonable name of a filesystem
<heat> EFI just took it from windows, because it was half designed by microsoft
<heat> and windows kernel guys
<heat> and wintel in general
<sortie> Windows is for WINNERS
<heat> linux was not really a thing in the late 90s/early 00s
<nikolar> moer like WINERS
<nikolar> heat: but utf8 was
<heat> utf8 was too late for microsoft
* n00by_ brings expresso and serves whoever wants one :)
<nikolar> and it was clear that ucs2 and utf16 sucked ass
<nikolar> n00by_: *espresso
<sortie> Funny thing Windows has UTF-8 OEM support nowadays
<zid> espresso
<n00by_> oh right
<sortie> 0xpresso
<n00by_> LOL
<nikolar> sortie: ughm right
<zid> sortie can die
<heat> these particular windowspilled people picked ucs-2
<heat> it is what it is
<nikolar> and it sucks
<sortie> zid: wie gehts
<nikolar> that's what i siad
<nikolar> *said
<sortie> sprechen sie deutsch
<n00by_> english, mam
<nikolar> nein
<zid> sortie: no dutch, no the, only die
<sortie> #d20
<sortie> 20
<sortie> I win
<sortie> zid is defeated. Perfect 20
<heat> ausgang
<heat> eingang
<zid> I actually have a passive where if a d20 is rolled in my presence, it is converted to a 1
<zid> sorry
<sortie> zid, roll for defense
<heat> nikolar: also at that point time there was almost quite literally nothing else you could use on PC
<heat> OS-wise
<nikolar> bsds and linux were around since mid 90s
<heat> it was windows and .... nothing else
<zid> I rolled a poison gas cloud, nap time for everybody
<nikolar> and uefi isn't older than that
<heat> yeah cool story bro, no one gave a shit
<sortie> zid, is converted to 1, you lose
<heat> linux was a commie UNIX
<heat> bsds were for weirdos and sued to shit
<zid> were!?
<nikolar> lol
<heat> commercial UNIX was not really on x86 PC
<zid> We learned a very important thing about heat today
<heat> i guess i forgot about beos
<heat> windows and beos!
<zid> They wouldn't forget about beos if they had correctly named it BeeOS
<zid> and used the atari st logo
<GeDaMo> What about Xenix? :P
<zid> (and bees came out every time you made your terminal do BEL)
<sortie> obi heat how dare you forget about geist-gon jinn
<geist> BEOS is the OS
<heat> hi geist! big fan
<heat> i have a question
<heat> when you guys named it BeOS
<zid> Insane shit inc
<heat> did you mean people were going to become the OS
<heat> how do I become an OS?
<geist> of cours eyou wouldn't understand. you're not the OS
<sortie> for a week I like worked in the room next to where geist was working, that was the times
<heat> or was it like
<heat> be as in beer
<heat> so BeerOS
<n00by_> GeDaMo: oh shit >licensed by Microsoft from AT&T Corporation
<n00by_> at&t mustve made so much money
<sortie> geist replies haiku
<nikolar> n00by_: what's that about
<heat> xenix
<nikolar> oh geist, you worked at be
<n00by_> more than arm, tbf
<n00by_> even by todays standards
<heat> at&t made so much money they broke it down
<n00by_> LOL
<n00by_> true
<geist> nikolar: yep! was an intern and then first job out of college
<nikolar> neat
<heat> did you ever get to become the OS
<heat> or was it a prerequisite in the first place
sortie is now known as sortix
<sortix> hello
<n00by_> irc is full of so many cool people, i spending time on pisscord
<n00by_> i hate*
<heat> ok
<n00by_> yeah
<GeDaMo> Did you ever get to be the box? :P
<n00by_> the box?
MarchHare has quit [Ping timeout: 252 seconds]
<n00by_> for one thing, yall are old af but i like it here
<nikolar> lol we aren't
<nikolar> heat how old are yuo
<heat> 76
<n00by_> heh
<n00by_> see
<nikolar> (not all of us at leats)
<GeDaMo> Damned kids, get off my LAN, etc. :P
<nikolar> i can't type today
<heat> the same way google measures googleyness
<heat> be inc measured becomeness
<n00by_> GeDaMo: i have heard that line like 20 times from you
<zid> geist and GeDaMo ARE old
<zid> nikolar and heat are babies
<nikolar> yeah we zoomin
<heat> geist is not that old at least
<GeDaMo> I'm younger than Keanu Reeves :|
<nikolar> lol
<n00by_> how about you zid, guess you're old after hearing that html4 remark :P
<zid> Yea but he has an oil painting of himself in his attic
<nikolar> oh he's older than i thouugt
<zid> I'm old because I know about pre-html5? dang
<zid> that was 2008
<n00by_> oh hey, its a good enough guess, no?
<nikolar> even i know about pre html5
<nikolar> it's not that esoteric lol
<heat> zid is 30-something but has the spirit of a 73 year old man
<n00by_> ye, kinda got that impression
<n00by_> zid is on discord? is that true
<zid> "You're old because you know what a PS2 game is" *crumbles into dust*
<n00by_> LOL
<nikolar> zid: the only console i have is a ps2
<nikolar> dang
<nikolar> i am ancient
<zid> apparently
<n00by_> do they still sell gameboys
<nikolar> i am sure someone does
<zid> not normal ones
<zid> original gameboys are actually really expensive now
<zid> I sold mine for £50
<n00by_> zamn
<nikolar> noice
<heat> nikolar: i have a PSP and an xbox 360
<heat> and a gameboy color
<zid> n00by_: The gameboy and I came out in the same year
<zid> also, germany
<nikolar> oh yeah i got a psp recently too
<n00by_> 89?
<n00by_> cuteee
<nikolar> i guess that makes 2 consoles
<nikolar> of the same generation lol
<zid> atari 2600, master system, mega drive, psx, n64, ps2, wii
<zid> is what I hve
<heat> i guess i have a nintendo DS somewhere
<heat> and we also have a nintendo switch
<zid> oh and gb/gba/nds but I sold the gb
svm has joined #osdev
<zid> oh and I bought a dreamcast like 20 years after they were relevent
<zid> because I wanted to play sonic adventure
<heat> do you guys remember the console wars
<zid> The disc sled is so impossibly loud however that I barely did, rip
<heat> and the PC vs consoles debate
<heat> good times.
<nikolar> heat: i have a steamdeck but i don't count that as a console
<nikolar> it's literally just a pc
<heat> the kids these days don't care about that shit
<zid> It's a laptop with no keyboard, nikolar
<heat> yeah but it has arch btw
<nikolar> indeed it's running arch btw
<zid> Are you running arch btw heat
<heat> right now i'm on the work laptop
<heat> so i'm on tumbleweed btw
<zid> you'll get fired for running arch, good
<zid> Universe is healing
<n00by_> slackin slack
<nikolar> heat: you're slacking at work
<zid> nortti: hahaha
<nikolar> dang
<nikolar> don't get caught
<heat> no it's 17:37
<n00by_> heh
<zid> GNU/arch/btw to give it its full name
<nikolar> nortti: what are the odds it's real
<nikolar> the post i mean
<nortti> low, but nonzero, I'd say
<nikolar> heat: you've been at it for a while
msv has quit [Ping timeout: 248 seconds]
<zid> right click on random anime picture, and then select the option to set it as desktop background.
<zid> NOw regular archlinux has been converted to arch btw
<heat> nikolar: shhh
<nikolar> zid: good point
<nikolar> someone shold make an arch btw installer
<nikolar> heat: lol
<heat> actually i started at 17:01
<heat> so
<heat> i win
<heat> no slackin
<n00by_> gentoo used to be cool
<heat> no it didn't
<heat> no linux distro is cool
<zid> no it didn't
<heat> seriously this is all so lame
<nikolar> heat: do you use your work laptop outside of work too
<n00by_> lfs is cool
<zid> even nerds made fun of me for using gentoo
<n00by_> lol
<n00by_> really
<sortix> lfs is cooler when you do it with your own operating system
<heat> correction: openSUSE and SUSE enterprise distros are NOT LAME
<heat> and indeed ARE COOL
<nikolar> nice save
<nikolar> you almost got CONTRACTED
<heat> nikolar: not really but also yes kinda?
<n00by_> sortix: trueeeeee, like bootstrap lfs from 0 binary seeds, that'd be cool af
<nikolar> heat: my work laptop doesn't even leave the office
<nikolar> i just ssh into it when i need to lol
<heat> i work from home
<nikolar> i do too, most days
<nikolar> i am getting some random lockups on bloody ubuntu
<nikolar> for some reason
<nikolar> nothing in dmesg or syslog of course
<sortix> n00by_: https://github.com/fosslinux/live-bootstrap/blob/master/parts.rst ← It's a thing. They start from a 512 byte boot sector.
<bslsk05> ​github.com: live-bootstrap/parts.rst at master · fosslinux/live-bootstrap · GitHub
<n00by_> O_o
<sortix> It's absolutely insane but they found a reasonable path that lets them bootstrap much of the modern Linux world
<n00by_> pure fucking black magic
<n00by_> wow
<nikolar> sortix: what do you mean much
<sortix> All from source code, tracing back to just one binary boot sector, that one is able to audit
<nikolar> once you get to a modern gcc, you've bootstrapped everything
<sortix> nikolar: Rust, Java, Haskell, and other languages are nightmares to bootstrap
<zid> once you get to gcc 4 you're finished, and someone is porting gcc4 to tinycc
<nikolar> sure
<nikolar> zid: oh is that so
sortix is now known as sortie
<zid> gcc4 can build gcc8 and then that can build everything else, atm
<zid> otherwise you need to do a gcc 1.2 or whatever step it was
<sortie> nikolar: You can discount and ignore all of those new languages, saying C++ Linux world is fine and it is, but well -- it's forcing its way into the ecosystem big time, even though the bootstrap stories are not ready. But #bootstrapable is working hard on all of this
<zid> (gcc 4.3 or whatever added C++, causing the break)
<sortie> Lack of bootstrap story is a big reason why I don't have Rust on Sortix
<n00by_> so hex0 is like a self hosted assembler done in machine code
<zid> sortie: My hope is that all the bullshit stays downstream and stops working itself upstream
<nikolar> sounds like a feature to me sortie
<zid> but I live in fantasy land
<zid> can't wait to need rust to use binutils
<sortie> nikolar: They keep adding Rust into the kernel..
<nikolar> and keep failing mostly
<zid> there's an driver!
<zid> I do think the hissy fit the mm guy had was funny though
<sortie> I'm just saying. We better hope there's a bootstrap of these languages that works, because they keep forcing themselves into everything
<nikolar> zid: you mean the one that already had a c driver
<zid> yea that one
<nikolar> that was like 200 lines of c or something
<zid> it's now 400 lines of unsafe in rust, thankfully
<heat> zid: you mean the dma stuff?
<nikolar> sortie: how about we just don't let them force thetmselves where they shouldn't be
<heat> hellwig is not an MM guy
<zid> right kernel/dma not kernel/mm
<zid> oh he got booted, rip that guy
<heat> he didn't get booted
<zid> he did
<zid> there's literally a patch removing him from it
<heat> sent by him
<zid> he's now 'random nvme driver maintainer' not dma maintainer
<heat> as part of the hissy fit
<nortti> sortie: aiui both java and rust have a bootstrap chain that's "reasonable", haskell and c# are the really bad ones atm
<heat> he still maintains a shit ton of stuff and is one of the main block subsystem guys
<heat> and xfs
<sortie> nortti: more like 'possible' than 'reasonable' but yeah
<bslsk05> ​lore.kernel.org: Making sure you're not a bot!
<nikolar> nortti: define rust's "reasonable" bootstrap chain lol
<zid> He was advised to resign, heat
<nikolar> you basically have to rebuild every version since like 6 years ago or whatevef
<nortti> no?
<zid> rust dogfoods itself pretty hard I thought
<nortti> yeah, but mrustc can compile a compiler from within last two years
<n00by_> is rustc still unstable?
<nikolar> nortti: fine, you need every version since 2 years ago
<nikolar> there
<nortti> https://github.com/thepowersgang/mrustc 1.74.0 seems to be the newest that'd directly bootstrappable from c++, while the newest is 1.87.0
<bslsk05> ​thepowersgang/mrustc - Alternative rust compiler (re-implementation) (118 forks/2313 stargazers/MIT)
<heat> zid: where?
<zid> The link above
<zid> one line above
<zid> where I pasted the link then gave commentary on it
<heat> i skimmed it and didn't find anything
<zid> it's linus telling him he's wrong and that it isn't how being a maintainer works
<heat> right
<nortti> nikolar: what I mean by "reasonable" is that once you do the mrustc step, you can just run the normal build using upstream tarballs, no need to muck around with weird patched forks like the gcc-from-tcc or mono bootstraps
<nikolar> well i don't think "reasonable" means building every version since but sure
<zid> reasonable if you have an 8TB hard drive
<nortti> the more I look into bootstrapping, the more it seems like the natural state of a programming language implementation is "fucking pain to bootstrap"
<nikolar> zid: oh no, hard drives are too slow for that
<bslsk05> ​guix.gnu.org: Adding a fully-bootstrapped Mono — 2024 — Blog — GNU Guix
<heat> nortti: it is yes, sadly
<heat> and generally only weirdos (like us) care about the bootstrapping
<nikolar> that's because no one care
<zid> cus nobody else gives a fuck yea
<nikolar> "oh look a new feature, i'll use it"
<heat> generally you cross-compile it once, and then just build it every release
<heat> gg, ez
<zid> same reason people keep making their config files fucking json files on *systems software*
<zid> because "oh well, MY machine has libjson on it, so it's fine"
<nortti> eh, even 9front has a json parser in the base system
<heat> i haven't found core software needing json
<nikolar> json is a terrible config format
<zid> right, and it's FUCKING INSANE
<nikolar> thank you verey much
<heat> but i have found core software needing xml
<heat> libxml2 is a core piece of the onyx system
<nikolar> that's even worse, yea
<zid> at least libxml2.. exists
<bslsk05> ​gitlab.gnome.org: Making sure you're not a bot!
<zid> is it possible to parse json on linux yet
<heat> jq is great
<zid> without just eval'ing it in spidermonkey
<zid> which is how it worked last time a random system package wanted json
<nikolar> > gitlab.gnome.org: Making sure you're not a bot!
<nikolar> low how useful these are
<nikolar> heat: i agree
<nikolar> json still sucks
<heat> it is what it is
<heat> json sucks until you think of xml
<nikolar> i mean
<nikolar> they both suck
<nikolar> let's just not
<nortti> at least xml has xpath et al, so that you can actually conscisely work with data without needing to hardcode your tooling
<zid> oh and mozjs needed python-2 as well, checking
<nortti> lol
<zid> gentoo submitted an upstream patch to at least let polkit use duktape instead
<zid> which is a like, a 'js engine in a lib'
<nortti> "There are several tools in the .NET SDK that are self-hosting with very tight cycles, taking dependencies on essentially daily builds. For example, Roslyn takes dependencies on new C# features very quickly, so you can't build the 5.0.100 Roslyn using the 3.1.110 Roslyn. (5.0.100 is essentially the next version after 3.1.110 right now.)" bootstrap this, you filthy casual
<bslsk05> ​github.com: Full source bootstrap · Issue #1930 · dotnet/source-build · GitHub
<nikolar> zid: lol someone mentioned duktape in another channel like half an hour ago
<heat> i mean we've talked about this before
<zid> 28 versions of rust, notbad
<heat> and established that polkit actually interprets javascript
<heat> it's not json
<geist> haha all the things you guys are syaing you have that makes you old existed *after i graduated high school*
<geist> hell after i graduated college
<zid> we didn't say that
<nikolar> Lol hello geist
<nikolar> The resident old man
<geist> someone was saying they have some ps2 which makes them old
<nikolar> Me
<zid> n00by called us old so we were going "yea, I'm fucking ancient, I know what a ps2 is"
<heat> yeah bro super old
<zid> not that we think we're actually old
<geist> like i had already worked at Be and quit when PS2 came out
<geist> SUPER OLD
<zid> geist: Did you see the 20th century thing
<geist> 20th centry! old
<geist> that's like almost report to Carousel old
<bslsk05> ​redirect -> www.reddit.com <no title>
<zid> LATE 1900s sorry
<geist> hahah
<geist> that's awesome
<heat> that's not a horrible question
<heat> just awfully phrased
<zid> yes it is!
<zid> 1994 was like 5 years ago
<nikolar> Lol
<geist> no it isn't, it's jut the 'late 1900s' is not a phrase you see
<heat> THE YE OLD YEAR OF OUR LORD NINETEEN NINETY FIVE
<zid> I took my penny farthing to school back then
<zid> in the 1900s
<heat> king in charge? King Bill Clinton
<nikolar> zid: lol
<zid> heat: I have a photo of my dad hanging out with king bill
<n00by_> irc is like the vintage hackerschool because of guys like y'all, neckbearded kernel hackers :3
<zid> nikolar: you are vintage now
<n00by_> LOL
<zid> I don't make the rules, sorry
<nikolar> zid: yeah I'm vintage
<nikolar> Like my ps2
<zid> die
<nikolar> Lol
<zid> I still haven't played through all my ps2 games yet
<zid> I should work on that
<nikolar> Yeah go ahead
<nikolar> You aren't getting any younger
<GeDaMo> I've been playing some PS2 games on an emulator, currently playing Okami
<zid> GeDaMo: neato
<nikolar> n00by_: may I ask how old you are
<n00by_> niceee, i should take some inspiration
<zid> You'd need a real ps2 for like, gt3 though
<n00by_> nikolar: 22
<zid> because nothing has or emulates pressure sensitive face buttons
<nikolar> Lol mate
<GeDaMo> Unfortunately my optical drive stopped recognising disks so I can't rip any more at the moment :(
<nikolar> I'm 24
<n00by_> oh hey, fello zoomer :3
<n00by_> we're the minority on irc
<zid> GeDaMo: I have a 2TB torrent of most ntsc games
<n00by_> fellow*
<nikolar> GeDaMo: you should load game over Ethernet
<zid> unless you wanted to play them in frenchies
<n00by_> fuck, cant type
<nikolar> If your PS2 has it
<nortti> zid: funnily enough, while I own a ps2, it didn't come with a working controller, so I'm using the original dualshock from my ps1 with it
<zid> nortti: no mgs2 then :( :(
<nikolar> Oh yeah controllers die easily
<zid> ps2 controllers lasted the longest of any controllers I've owned
<zid> but they do die *eventually*
<GeDaMo> I bought a new controller, I have an adaptor for the PS ones but all my old controllers are kind of grotty :P
<nikolar> Eh I yuessb
<nikolar> *guess
<nikolar> My perspective might be skewed, it's been a while
<nortti> yeah, the dualshock is aiui original, but I am not a heavy impact gamer
<zid> GeDaMo: all the playstation controller adapters I found were actually only good enough for original dual shock
<zid> :(
<zid> and the emulator plugin config couldn't handle ds2s anyway
<zid> no way to bind axes to face buttons
<GeDaMo> My adaptor works, the controllers not so much
<zid> GeDaMo: does it show as an 18 button dinput device or something?
<GeDaMo> Hmmm ... I don't remember
<zid> I've literally *never* seen a ds2 adapter, because.. nothing supports them anyway, kek
<heat> i use an xbox controller because i have principles and values
<n00by_> lol
<zid> heat: 360 or xbox or xbox fat?
<heat> xbone
<nortti> I use an xbox controller (controller for the original xbox), because I have principles (committing to the bit) and values (funny)
<zid> so none of the things it could have been when you said xbox :P
<heat> i have various xbox 360 controllers around
<zid> I had an xbone 3rd party, the sticks broke off
<nikolar> heat: eww Xbox
<heat> but they're wireless and i don't have a receiver for them
<zid> because it was a tiny square pin hammered into the joystick nub
<nikolar> Dual shock forever <3
<n00by_> yeh
<zid> which meant ANY twisting motion AT ALL, would jsut bore a circular hole
<zid> with the nice square broach
<nortti> lol
<nikolar> Lol
<zid> then the joystick caps would fall off
<zid> I am now using an honestly pretty okay, incredibly cheap, switch knockoff. But it has digital triggers so no racing games for meee
<zid> ps5 controllers or whatever are like £80, madness
<n00by_> ps5 is for the normies
<vdamewood> They only feel like a few ounces.
<geist> shots fired
<nikolar> zid i tried an F1 game on the psp
<nikolar> It sucked lol
<nikolar> The controls I mean
<GeDaMo> The new controller I bought is an "official" PS4 controller from a company called Nacon
<nikolar> Not the psp itself
<zid> *there exists*, knockof 360 controllers, which would be perfect. But there also exist, knockoff-knockoff 360 controllers which are useless. And you have no idea which are which.
<geist> really though of all of the controllers i've owned over the years, and i have a lot, not once has any of my playstation controllers died
<geist> i have lost multiple xbox ones
<geist> stick drift, etc
<nikolar> See
<nikolar> Dual shock for lyfe
<zid> ds1/2 don't have analogue triggers though nikolar
<vdamewood> I wish I had a DS4 controller.
<geist> though i also have one of the Dukes
<zid> and nothing supports ds2 anyway
<geist> they're great
<nikolar> zid eh fair enough
<vdamewood> Funny enough, the face buttons on DS2 are analog.
<nortti> I don't have a duke myself, but rather the redesigned one
<zid> yes, that's why nothing supports it, vdamewood
<zid> there are 0 adapters that turn the face buttons in axes, and 0 emulator plugins that accept axes for face buttons
<zid> ds3 needed the fucked up third party tool because it wasn't dinput/xinput afaik?
<nikolar> To be honest, I like the steam deck's controls more than the ds4 lol
<vdamewood> zid: Makes sense. None of the game developers took advantage of the feature either.
<zid> ds4/ds5 are £80 each
<nortti> (funnily enough that called "xbox controller s", not to be confused with the controller for xbox s)
<geist> nortti: yeah i have hte original, though i havne't looked into if you can connect it to anything modern. i think it's just usb under the hood
<zid> vdamewood: gt3, mgs2
<geist> but of course the original xbox had a proprietary connector
<zid> It's very very important that your square button have pressure sens, re mgs2
<vdamewood> zid: Oh really? Interesting. I can see GT3. I'm not quite sure how MGS2 would though.
<zid> the xbox port had to move square to R2
<nortti> geist: yeah it's usb, and under linux Just Works out of the box with a simple mechanical adapter. on windows you gotta do more hacky shit
<zid> vdamewood: light press square = ready weapon, heavy press = full auto weapon
<geist> yah i think it's something like it has a nonstandard HID or something
<geist> since it was like 2001
<zid> mgs2 mainly involves holding guards up for their dogtags
<vdamewood> Ah, okay. That works.
<zid> by pointing guns at them *without* turning their heads into mist
<vdamewood> without? But, that's half the fun.
<zid> try it
<zid> on a difficulty above easy
<vdamewood> I was just kidding.
<zid> also you probably just.. couldn't use a sniper rifle at all
<zid> to disarm vamp's bombs on the bridge
<zid> or save emma
<n00by_> lol
<n00by_> gotta save emma first
<zid> no?
<n00by_> LOL
<bslsk05> ​www.s-config.com: XBCD – Original Xbox Controllers with Win10-8 – S-Config
<vdamewood> I never really lerned about the Metal Gear series until after the PS2's lifetime for some reason.
<GeDaMo> zid: my PS2 controller is showing up as a GreenAsia USB Jotstick with this adaptor
<zid> kek
<zid> if you click the device in 'set up usb controllers'
<zid> it existing means dinput, and how many buttons etc it has appear on the subpanel
<nortti> geist: does work on win11, but I did set up it on win10 and then upgraded
<GeDaMo> Where's 'set up usb controllers'?
<zid> top one = switch pro, bottom one = keyboard encoder
<zid> joy.cpl
<GeDaMo> I'm on Linux :|
<zid> pfft
<vdamewood> On the one hand, I want to make an OS that can be operated entirely by controller. On the other hand, that's the OS for every console out there.
<zid> nikolar how do HID devices work on linux
<zid> wine joy.cpl
<geist> nortti: hmmm! i should dig out The Duke and see how it works. honestly havne't thought about it in a long time, it's in a box somewhere
<zid> usbhid-dump
<zid> part of usbutils which is like pciutils and gives you lsusb
<zid> woo linux
<heat> FUCKING LINUX BABY WOOOOO
* vdamewood tries to install isautils
<GeDaMo> usbhid-dump just gives me a whole lot of hex
<zid> nice
<vdamewood> GeDaMo: Sounds good. Read the hex.
<zid> correct
<zid> those are your HID descriptor reports
<zid> you need to press buttons and watch the bits flip
<heat> "daaaaad my controller isn't working on your stupid linux computer"
<heat> "that's okay son just execute usbhid-dump and read the hex"
<zid> you can't do it?
<heat> i don't know if i can
* vdamewood sits on the loo and takes a hexdump
* zid wrote a hid input layer for a game once, so actually knows how this shit works
<GeDaMo> Meh, I found this :P https://hardwaretester.com/gamepad
<bslsk05> ​hardwaretester.com: Hardware Tester
<heat> i have negative knowledge about USB
<zid> yea seems to work
<vdamewood> heat: USA was so bad, they had to make a new one.
<heat> lol
<zid> shows mine has a 13 button device with.. 8 axes, that's wrong, kek
<bslsk05> ​nondebug.github.io: HID Explorer
<zid> Uncaught (in promise) TypeError: navigator.hid is undefined
<bslsk05> ​nondebug.github.io: Page not found · GitHub Pages
<nortti> that's because you're using the commie web browser, zid
<zid> correct
<vdamewood> Do triggers register as a range from 0 - n, or from -n to n?
<GeDaMo> Mine is showing as 12 buttons and 7 axes, I'm not sure where the 7th one is :P
<zid> vdamewood: they can do whatever you like
<zid> my favourite is ones that register as an angle
<zid> usually triggers are set up as a single axes with only a positive range
<heat> what's the commie web browser
<zid> foxfucker
<vdamewood> heat: .COMrad
<GeDaMo> The face buttons are just showing as 0 or 1
<zid> yup
<heat> foxfucker is a weird name
<heat> not great branding
<zid> because it's a ds1 adapter, ds2 adapters don't exist
<vdamewood> Fired fox.
<zid> so no mgs2 for you
<zid> You'll have to 100% complete FFX instead, oh no
<heat> firefox is not actually a commie web browser
<heat> it's just a terrible web browser
<GeDaMo> My USB PS4 controller is showing as a generic X-box pad
* vdamewood plugs his SNES controller into GeDaMo.
<zid> chrome is the facist web browser, heat
<zid> you're portugal though so I guess it's to be expected, BALKAN POWER
<n00by_> (every browser sucks, firedfox just sucks less)
<heat> don't look at my user agent
<vdamewood> What's safari? Kool-Aid drinkers'?
<zid> yes
<zid> very apt
* vdamewood sips more Kool-Aid.
<zid> or mormons or something
<vdamewood> Jobs's Witnesses?
<heat> lol
<zid> jobs' is fine
<zid> you don't need the bonus s
<heat> job's
<zid> heat style
<zid> (aka wrong)
<vdamewood> Well, I have to get ready for real life. Laters.
vdamewood has quit [Quit: Life beckons]
<kof673> hmm, i don't know how popular the old metal gears were (msx and 2 for nes) ...just was amazed when the psx version came out
<kof673> zanac had a 'follow up' of sorts too, for nes, 2024 or so :D need a modern jackal now :D
<GeDaMo> "BREAKING: Mount Lewotobi Laki-laki in Indonesia has erupted"
<n00by_> looks bad
Terlisimo has quit [Quit: Connection reset by beer]
Terlisimo has joined #osdev
parabirb has quit [Quit: WeeChat 4.1.1]
Turn_Left has joined #osdev
wgrant has quit [Ping timeout: 244 seconds]
parabirb has joined #osdev
Left_Turn has quit [Ping timeout: 276 seconds]
wgrant has joined #osdev
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
Yoofie646446382 has quit [Ping timeout: 268 seconds]
mx08_ is now known as mx08
<nikolar> someone linked a book about CDC 6600
<zid> did you chastise them
<nikolar> and in the instruction listings there's a "logical difference"
<nikolar> is that like xor or something
<zid> xnor is == if that helps
<nikolar> there is logical product, sum and difference
<heat> nand?
<nikolar> i know the first two, i imagine the difference is xor though
<nikolar> heat: why nand
<heat> no, nand wouldn't be that
<heat> i'm tired and dumb
<nikolar> lol
<heat> might be xor yeah
<zid> to my modern ass eyes, logical just means 'signed' :P
<nikolar> signed?
<nikolar> why signed
<zid> rather than binary, meaning unsigned
<nikolar> eh?
<nikolar> in what context is that the case
<zid> logical shifts vs non-logical shifts, as an example
<nikolar> logical shifts are unsigned
<nikolar> arithermtic shifts are signed
<zid> arithmetic I guess is the real term
<zid> yea
<nikolar> so the other way around
<zid> can we ask turing, he'd know
<nikolar> lol
<nikolar> too bad he's dead
<n00by_> > someone linked a book about CDC 6600
<n00by_> that was our master GeDaMo :P
<zid> some old fart
<zid> what channel is this
<zid> electornics?
<n00by_> lol
<nikolar> oh yeah GeDaMo
<nikolar> zid: hey the 6600 is a computer
<nikolar> you can osdev on it
<zid> okay but what channel was it
<nikolar> this channel
<n00by_> do you guys think reverse polish notation is more natural than infix?
<zid> I don't believe you
<nikolar> too bad
<GeDaMo> zid: serves you right for not paying attention :P
<nikolar> lol
<nikolar> n00by_: not really
<n00by_> ah, ok
<heat> offtopic
<zid> too busy looking at hid and volcanoes
<nikolar> it's easier for computers for sure
<zid> 'more natural'
<zid> is obviously meaningless
<nikolar> yea
<zid> 0 semantic payload right there
<nikolar> why hid and volcanoes
<GeDaMo> Nothing about computers is natural :P
<n00by_> nikolar: i was looking at forth, so i had to ask that question :)
<n00by_> silly ik
<zid> poor boy
<zid> Empirically, enjoying forth makes you a member of the IRA
<nikolar> is that so
<zid> given my sample size of 1
<nikolar> lol
<nikolar> statistically significant
<kof673> cdc something or other is sign and magnitude some of them IIRC and there were c compilers but not sure about emulator etc.
<kof673> just use a cult of dead cow logo when you make your emulator
<n00by_> well, postfix is definitely easier to parse, so yeah
<zid> unless you're japanese
<nikolar> eh?
<zid> or *shock*, german
<zid> where they stack all the verbs up at the end
<nikolar> i don't think computers care about that
<zid> we're talking about notation
<n00by_> yeah, they care about arithmetic operators
<n00by_> seek help zid :P
<zid> no they don't
<nikolar> yeah, and i said that rpn is easier for computers
<nikolar> which is presumably what n00by_ replied to
<zid> yea yea
<zid> in other news, I hate writing parsers it sucks
<zid> do not recommend
<nikolar> indeed
<nikolar> just parse lisp
<nikolar> it's almost trivial
<zid> isn't lisp one of those proper oo languages where you can just rewrite it in itself
<nikolar> what's oo got to do with it
<n00by_> so is lisp's grammar
<n00by_> parse c++
<n00by_> good luck
<nikolar> eh?
<zid> cus that's what oo was before C++ decided oo was something else entirely :P
<nikolar> no?
<zid> pure copium
<n00by_> nikolar: i was kidding lol
<nikolar> yeah i didn't get the joke
<n00by_> i said, lisp has a simpler grammar
<n00by_> in bnf
<zid> C++ has undecideable grammar
<zid> so that's not a high bar
<nikolar> lol
<n00by_> LOL
<zid> not a joke
<nikolar> indeed
<zid> aa bb(cc);
<n00by_> ofc it was
<n00by_> i liked it
<nikolar> which makes it even funnier
* n00by_ zid gets a sandwich from me
<nikolar> zid: he loves you the most apparently
<zid> n00by_: when AA and CC are types, that's a function prototype, when AA is a type and CC is an identifier, BB is an iinitialization, when AA is an identifier, it'sillegal
<zid> and it can all be inside templates
<zid> You can resolve it with two passes, collecting up type names to use for the second, but you can't *not* parse things on the first pass in case your templates or macros or whatever spit out a typedef
<zid> so you literally need to fully parse it, twice
<zid> or just.. guess, which is what *actual* compilers do :D
<nikolar> i mean you can't trivially parse c either
<nikolar> because casts look like expressions
<zid> yea you also need to typedef dictionary for C
<zid> you can't just throw yacc at it
<zid> thankfully types must be forward declared
<nikolar> unfortunatelly
<zid> (and no templates)
<nikolar> yea
<kof673> if you want a multiple layer logo for your cdc emulator, then cult of dead cow logo + cow tools comic + "behold, it is i, even he, and i am living forevermore" caption :D
<n00by_> gcc/cp/parser.cc is ~50K lines. i should continue playing with forth as a member of the IRA :P
n00by_ is now known as n00by
<zid> did I ever remember to recover my lost tokenizer source nikolar
<nikolar> nope
<nikolar> you never mentioned it at least
<nikolar> n00by: you shouldn't take gcc source size as a measure of complexity of the language
<heat> i mean it's unfair to look at the C++ parser
<heat> like, jesus
<heat> pick something reasonable?
<nikolar> lol
<n00by> nikolar: why not? :D
<heat> the C parser is 15KLOC it seems
<n00by> ~30K
<zid> ah, I did
<zid> C++ has more grammar than all the world's spoken languages
<n00by> fair enough
<bslsk05> ​gist.github.com: token.c · GitHub
<zid> Thank god for linking source to people as gists so I can just find the link again then get my source back, after I stupidly dd the wrong drive :D
<heat> good stuff
<heat> One Day I'll write a C89 compiler
<nikolar> why c89
<nikolar> and not c99
<zid> vlas suck
<zid> and add grammar
<heat> separate variable decls
<nikolar> well, have fun
<bslsk05> ​github.com: c4/c4.c at master · rswier/c4 · GitHub
<heat> you can take the whole thing, sum up the sizes and align
<zid> I think that's the only difference between a C89 and C99 parser at least?
<heat> and boom, there's your stack
<nikolar> you lnow whawt you should do
<nikolar> write a b compiler
<heat> C99 also has inline
<nikolar> GeDaMo: lol that's a c interpreter right
<GeDaMo> Yeah
<zid> oh, forgot inline wasn't even in C89
<nikolar> heat: which you can just completely ignore
<GeDaMo> A C subset anyway
<nikolar> just eat the token and you're done
<zid> you need to add it so you can ignore it, though
<nikolar> GeDaMo: what do you rekon is the easiest c compiler to retarget
<zid> My parser got to 3 hours of designing unions
<zid> and no actual parsing
<nikolar> very productive!
<zid> you were there
<nikolar> i was!
<heat> nikolar: llvm obviously!
<nikolar> no
<nikolar> ew
<nikolar> i'd bet gcc is easier than llvm
<GeDaMo> I'm guessing tcc
<zid> oh right, I got sidetracked by unary operators
<heat> i would definitely bet otherwise lol
<heat> have you seen GCC?
<nikolar> yeah
<heat> it's spaghetti
<zid> the psuedocode I was following for 'how to parser' didn't allow unaries
<nikolar> but the target specific bits go into their own little world
<heat> very historied code lets say
<heat> anyway guys i found a new gif
<zid> and I barely understood it to begin with
<heat> mp4 actually
<nikolar> aww
<nikolar> and why is it not a proper gif
<nikolar> smh
<heat> i don't know i found it on giphy
<heat> sorry, tenor
<zid> why is the gnu coming out as trans
<nikolar> no gifs on giphy
<heat> discord's gif thing
<nikolar> smh
<heat> i would die for gc-fucking-c baby what a compiler lets go
<heat> GNU GNU GNU
<nikolar> GNU GNU GNU
<heat> google and nvidia and facebook? we don't need those guys
<heat> gcc is built on the power of friendship
<heat> and SUSE and redhat
<heat> ooooh linux distro friends!
<nikolar> THE POWER OF FRIENDSHIP BABY
<nikolar> GCC GCC GCC
<zid> 53 mins until tutor prepub
<nikolar> lol
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
<heat> sounds like a shitty knockoff gcc
<nikolar> prepube
eluks has quit [Remote host closed the connection]
eluks has joined #osdev
<n00by> nikolar: even if we ignore the size of the parser, c++ is still our least desired language tbh, no? we write it because we have to, we get paid for write unreadable code :D
<n00by> writing unreadable*
<heat> you best believe lots of people enjoy writing C++
<zid> There are people who are brainwashed
<nikolar> zid: or braindead
<zid> They think that because it took them 20 years to get passable at, that if it weren't the greatest language ever, it wouldn't have taken them 20 ye ars
<nikolar> but yeah, c++ bad
<zid> it's a mental defence mechanism about wasting 20 years of their life
<heat> C++ bad C good up to 99
<heat> upvotes left
<zid> doots*
<n00by> knuth doesnt like c++ for a reason :P
<nikolar> is he ever going to finish his books
<zid> george r r knuth
<heat> no he's too busy building a big program in C
<n00by> i think he will <3
<n00by> vol 5 will contain parsing
<heat> volume 6 will be an in-depth discussion about including glib or not
<nikolar> i should probably check the bookies out sometime
<n00by> im being honest, im just too retarded to make any reasonable comment on his books :)
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
<n00by> nikolar: they're great, just too hard.
<n00by> gcc even targets mmix
<GeDaMo> I remember using volume 3 Sorting and Searching in the 80s :P
<n00by> fuck, master GeDaMo again
<nikolar> GeDaMo: how old are you
<GeDaMo> 0x3C :|
<zid> 4
<zid> oh don't write numbers
<zid> He's 84
<n00by> why is it that you have access to every goldmine that EVER existed? is GeDaMo a standford dropout? :P
<GeDaMo> I just read a lot :P
<heat> he's 0x3c
<heat> he's had a loooooooooooooot of time to collect this sort of stuff
<n00by> boi, you're something man
<nikolar> heat: he was there when it was written
<n00by> GeDaMo, is only of the real experts lurking in plain sight, NGL
<n00by> occasionally reveals himself
<n00by> lol
<zid> Important announcement btw
<nikolar> is it about prepubes?
<n00by> is one of the*
<zid> someone has found the holy grail food in aldi. The UK added little coloured boxes to the front of packaging to let you know about kcal/salt/etc
<zid> The all red boxes food has been discovered
<bslsk05> ​redirect -> www.reddit.com <no title>
<zid> Yours for just £4.99
<heat> revolutionary
<nikolar> whoa
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
<n00by> he's gone :(
<zid> ran out of owls
<n00by> lol
<nikolar> dang
<n00by> hes older than my dad
<n00by> wtf
<zid> lots of people are older than your dad
<nikolar> he should switch his IPoAC providers
<zid> oh good, I've gone blind
<nikolar> how's that good
<zid> sarcasm
<nikolar> how did you go blind then
<zid> v
<nikolar> well that's no fun
<zid> can you push the epubes
<zid> just in case I stop being blind in the next 50 mins
<nikolar> lol
<nikolar> there
<nikolar> it's runnin
<n00by> epubes? lunduke on vtube?
<nikolar> eh?
<zid> genz nonsense so nonsense that even nikolar doesn't know it
<nikolar> lol
<heat> don't mention that person here
<heat> thanks
<zid> heat is zoomer enough to know things though
<n00by> i wont, your welcome heat
<zid> he knows all the skibidis and incels
<nikolar> don't forget the toilets
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #osdev
<zid> okay I read it, coma time
svm is now known as msv
<n00by> there's an assembly programming discord server called "underware programming" xD
<nikolar> ugh discord
<n00by> deleted it
<n00by> i still had the memory of that name though
<n00by> well, zid adores it, i heard. disco-disco-discord
jcea has joined #osdev
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
corinne has quit [Remote host closed the connection]
corinne has joined #osdev
<n00by> btw, dumb ques, is the hardware stack an array of cpu registers or is it a array of memory cells in a sram/dram?
<nikolar> could be both
<n00by> ok
<nikolar> erm either?
<nikolar> but in basically every arch you get to program, it's in memory
<geist> yeah the latter
<geist> there are some older arches where it can be in registers, etc, but anything modern its all memory
<nikolar> geist: i think there are some really specialized cpus that also do it with registers
<nikolar> but yeah, you'll only ever come across memory based stacks i imagein
<geist> (8008 comes to mind, it iirc has 8 internal stack registers)
<geist> and TMS 9900 i think has some wonky 'registers are memory' thing that blurs the line
<geist> though i forget how it deals with stacks
<clever> i believe the centurion also has the registers in the first 256 bytes of ram
<clever> but the stack is meant to be in regular ram
<geist> yah some older arches back when mem was faster than the cpu you can treat 'registers' as just essentially a fast memory access
<geist> it was fairly common to map registers into memory like that
<nikolar> 6502 lets you treat the first 256 bytes as registers (kind of)
<clever> but thats more like allowing an 8bit addr for load/store
<geist> well, if you think of it as registers are an address mode that uses a tiny bit of bits to get to 'memory' and then the zero page is another slightly slower address mode that needs 8 bits to access memory, and then direct addressing is slower and needs 16, etc
<geist> right
<clever> with the centurion, there are ~16? banks of registers, meant for hw threads, and all banks sequentially are at 0 in the addr space, so you can pre-configure another thread
<geist> the different comes in thingsl ike can you use a higher level addressing mode to accses a lower one
<geist> clever: yeah okay, that's an example of registers are memory i was thinking about
<geist> TMS9900 has a register base register which then specifies where in memory the (IIRC) 16 registers are
<clever> ah, neat
<geist> and then when you access r0 or r1 or whatnot it goes against that base address
<geist> so kinda a middle ground. it's like a 4 bit addressing mode against a Direct Page which is really what the 6502s is a special case of
<geist> 6800 and 6809 both have movable direct pages, but 6502 being basically a RISCy clone of 6800 has it fixed at 0
<geist> (same with stack, which is always 0x100-0x199 instead of having a proper 16 bit SP)
<nikolar> later revisions did let you remap the zero page (and the stack i think)
<geist> usually external mmus did that
<geist> and i may be wrong about 6800 having a movable DP, but 6809 definitely did
<nikolar> i mean that the cpu itself held the base registers
<nikolar> which you could modify
<geist> if you ever get a chance to fiddle with it, 6809 is a lovely architecture
<nikolar> (by later revisions, i meant long after 6502 was relevant as a desktop cpu lol)
<geist> it's like the culmination of 12 years of 8 bit cpus, came too late, but was lovely
<nikolar> motorola made some nice archs
<n00by> tysm guys <3
<n00by> stack frames and call stack etc is all in memory it seems
<n00by> register file in modern cpus confused me though
<n00by> now i have some idea
<nikolar> if you're thinking of physical register files, yeah they can hold a lot of data that doesn't fit into architectural registers
<geist> yah and if you're using x86-64 as a modern arch, it's really not. consider it to be a 70s era arch
<geist> if you're just learning things keep in mind anything about x86 is not really a great example of anything modern is all imean
<n00by> ah :D
<nikolar> well, define modern
<nikolar> riscv?
<nikolar> ew
<geist> arm64 riscv, yeah
<nikolar> i don't really agree
<nikolar> what's so modern about riscv
<geist> which really are pretty mid 80s RISC, but that's about as modern as it comes with standard ISAs nowadays
<nikolar> it's basically a mips from decades ago
<geist> sure, but my point is that's still a decade after x86
<nikolar> no better or worse than x86
<geist> disagree
<nikolar> modern x86 is nothing like 80s x86
<geist> disagree
<geist> it's very much mostly the same thing, just layers of stuff on top.
<geist> worse, it's like 7 extensions of layers on top
<nikolar> it can do the same thing it did back then
<nikolar> but no one uses it like that
<geist> this prefix byte escapes that prefix byte, etc
<pog> i use it in 16 bit protected mode all the time
<nikolar> lol what for
<pog> for uh
<geist> inconsistently zero or sign extends, inconsistenlty access pieces of registers based on which era register it is, etc
<geist> some instructions operate against particular registers, etc
<geist> lots of old 70s things are totally still there
<pog> ok i lied
<nikolar> there we go
<geist> and riscv being basically mips, while that's true to a certain extent, it is also got a lot of newer ideas and cleaned up issues with original mips
<geist> it's definitely similar, but lessons were learned
* pog mips
Turn_Left has quit [Read error: Connection reset by peer]
<nikolar> riscv is a lame architecture
<nikolar> doesn't even have scaled indexed addressing mode
<geist> yep, it *specifically* doesn't have that
<geist> it has exactly one addressing mode
<nikolar> and that's lame
<nikolar> as i said
<geist> okay
<nikolar> arm has more addressing modes
<nikolar> and it's a far more interesting arch
<nikolar> if riscv wasn't interesting for being an open arch, no one would've cared
<geist> oh dont get me wrong i dont think riscv is that 'interesting' in that regard, and the lack of any more powerful addressing modes may hurt it but the former is mostly subjective
<geist> ie, it being interesting doesn't really matter, its the other details that do
<geist> notably being open, yes
<nikolar> but that's the only relevant thing about it
<nikolar> is my point
<nikolar> it didn't "win" based on any technical criterion or whatever
<zid> x86 isn't very orthogonal, no, but.. I don't see what that has to do with modern
<nikolar> it's literally free and that's it
<geist> i dont think anyone s really disputing that, but that wasn't the originatl stately
<geist> statement
<geist> eep, got meeting
<nikolar> have fun
<nikolar> i am just saying riscv isn't a good example of anything
<nikolar> other than how to sell an isa on being free
<zid> nikolar: We should pump a billion dollars of R&D into making silicon for a throw-away teaching architecture, as a joke
<nikolar> zid: someone already did
<zid> we could call it RISKY BEE or something
<geist> i disagree, but it's for different reasons
<geist> it's 'clean' because it's simple and regular
<geist> and if someone is learning things i think that's a better starting point
<zid> and it quickly got very UN clean the moment anyone tried to do anything modern with it
<zid> risc-v-kfq512axasdkc
<geist> can you give me an example?
<nikolar> geist: well, i doubt anyone's pc is going to run anything but x86 (or possibly arm) any time soon
<zid> and still can't do atomics, that's pending
<nikolar> so better start there
<zid> riscv is a cpu instruction set, but it turns out, modern pcs mainly revolve around memory management, and the cpu part is kind of irrelevent. What makes an ISA different to another ISA is what you call all the serialization, atomic, etc bits
<geist> i dont think that's a real extension
<geist> riscv atomics are part of the base RVA spec and has for years
<geist> rv64gc includes the 'a' extension
<clever> its also in the name of an emulator ive worked on, mini-rv32ima, i think thats integer? mult? and atomics extensions?
<geist> correct. imacfd == 'g'
<zid> is there a divide yet
<geist> yes, it's part of m
<zid> it wasn't, in the draft I heard of
Lucretia has quit [Remote host closed the connection]
<zid> multiplier but no dividerator
<geist> that draft would be like 10 years old at this point
<zid> I only see the occasional bit of risc-v 'news'
<zid> and I doubt "we added divide in an rfc" made it to any aggregators
<geist> my point is if you're going to throw shade at a thing at least do some research
<zid> just "lol they finally added mul, but not div", because that's funny
<zid> if you think <zid> riscv is a cpu instruction set, but it turns out, modern pcs mainly revolve around memory management, and the cpu part is kind of irrelevent. What makes an ISA different to another ISA is what you call all the serialization, atomic, etc bits
<zid> is shade
<nikolar> hey, my shade throwing was factually correct
<zid> then I just can't talk about anything ever
<geist> no bit you're lol riscv doesn't have div or atomics
<geist> is just totally wrong nowadays
<zid> I mean, it doesn't have anything, in practice, nobody has these chips outside of tiny dev boards, or if they do, it's a custom run where the 'riscv' part is irrelevent, and it's just poking other controllers
<zid> because it's free
<nikolar> technically, the chinese are building shitty server riscv cpus
<nikolar> i wonder if they are actually deploying those
sprock has quit [Remote host closed the connection]
<zid> It's like, nice I guess, that people are bothering to collaborate on how they are extending risc-v to be useful to them
<zid> but that sort of proves my entire point, the risc-v part being irrelevent
<zid> what matters is the extensions to turn it into a useful product
<nikolar> the hard part isn't creating an isa
<zid> and not just a vacuum ISA
<nikolar> it's actually building the sillicon
<nikolar> and making it go vroom
<nikolar> that's ridiculously hard
<geist> thing is there are *tons* of riscv stuff out there already
<zid> I mean, it's the exact argument we make about x86, that the frontend is irrelevent, it doesn't matter that it's non-orthogonal
<geist> i't sjust not a desktop or server and thus you dont seem to know or care about it
<zid> yes, and that's because risc-v is free, not because the ISA is 'very orthogonal'
<nikolar> geist: anything that can even remotely compete with my laptop?
<nikolar> because microcontrollers don't count
<geist> ah thats the gist of it isn't it
<zid> it's as an mcu in a hard drive or whatever for poking the actual controller awake and doing pm
<nikolar> i've repeatedly said that riscv is ideal for mcus
<nikolar> probably in this channel too
<zid> people were happily using PIC and stuff for that, and that's awful :P
<geist> right and then you'll say that it's totally irrelevant
<geist> which is not the case
<nikolar> but that's not what anyone means when they talk about modern relevant isas
<geist> it's extremely relevant
<nikolar> geist: there are pic16s or whatevet still being used
<nikolar> i wouldn't call pic16 a relevant isa
<geist> okay, then we will agree to disagree
<nikolar> sure
<nikolar> n00by: oh i just remembered
<nikolar> some isas have register windows
<nikolar> that work sort of like stacks
<nikolar> sparc is an example
Yoofie6464463823 has joined #osdev
<n00by> yeah, looked it up and looks like it's old mips / sparc tech like you said :P
<n00by> can you spot riscv?
puck has quit [Ping timeout: 268 seconds]
<geist> as far as i can tell those are all PCs, so no
<n00by> ye
<n00by> nikolar: > The complete set of registers are known as the register file, and any particular set of eight as a window.
<n00by> it's the same stuff essentially
<n00by> array of registers in the processor
<geist> yeah that's true
puck has joined #osdev
<geist> forgot about register windows, but... those are not exposed as a stack per se, but as a particular 'rotate the registers' set of instructions
<zid> yea that's a.. window? :P
<zid> like bank switching
<geist> that kinda performs stack like things but isn't the standard stack for storing data
<zid> so you can do similar operations on different sets of things
<zid> not so that you can roll it forwards and use way more than the normal number of regs
<geist> ia64 has a much more powerful register window feature, the sparc one was fairly limited
<nikolar> i've never looked closely into ia64
<geist> just 8 registers at a time, and its explicitly rolling just the top 24 out of 32 registers
<nikolar> how's it different
<geist> gosh i'd have to page that all back in but iirc it's more like at the start of each function you 'allocate' a variable number of registers (dunno if it can be truly variable,but it doesn't have to be a multiple of 8)
<geist> and then the registers you didn't allocate are iirc off limits, and will fault if you touch them
<zid> what was that weird vax convention
<zid> something to do with registers, dang
<geist> since it hides it behind some allocation scheme it can implement it behind the scenes
<nikolar> i should probably look into ia64 at some point
<geist> so if your function only needs 5 registers it only gets like r32-r36 or something (iirc r0-r31 are always there?)
<nikolar> but the information is kind of scarce lol
goliath has quit [Quit: SIGSEGV]
xenos1984 has quit [Read error: Connection reset by peer]
<geist> but that means the hardware can rotate them or whatnot however it sees fit
<geist> iirc there was another feature where you could pick a range of registers and literally rotate them
<geist> like for loops or something
<n00by> wild
<geist> ia64 was like throw every crazy idea you ever had in one place
<zid> I'm sulking because I can't remember the weird vax thing
<geist> some of which are neat, some of which were a bad idea
<nikolar> zid: what kind of convention
<nikolar> calling convention?
<geist> zid: probably the bitmap you put at the start of a function taht the calls instruction uses to auto push the registers
<nikolar> or something else
<zid> idk I can't remember it, but yea, calling
<zid> yes that thing!
<nikolar> oh you can do sometihng similar in m68k
<zid> I figured geist would know, but I had no way of transmitting what the fuck I was talking about
<nikolar> push multiple regisrers in one instruction
<geist> yah the calls instruction does a *lot* of stuff, including pushing the whole stack frame, and a variable amount of registers
<nikolar> arm can also do it i think, bit only for contigues registers
<zid> I think they removed that?
<geist> but vax only has 16 regs so a single 16 bit word is enough
<zid> Because it was so fucking ungodly to deal with if you pushfb {r0, r14} and then it faulted on r12
<nikolar> geist: any interesting ia64 reference?
<geist> aside from the manuals no
<geist> its an interesting read but so bizarro
<nikolar> fair enougg
<zid> STMDB
<geist> that's arm32 yes
<geist> arm64 removed that
<nikolar> what was taht
<geist> stm was pretty much always there in arm32 from the get to: store multiple
<zid> they had to add a special flag for "we're the middle of a stmdb"
<geist> and it takes basically a 16 bit bitmap
<geist> since arm32 has 16 regs
<zid> aarch64 decided it was too much of a pain in the arse and doesn't have it :P
<geist> correct. much of arm64s design is about simplifying the underlying architecture
<geist> and anything that takes a variable amount of time to run was removed
<geist> (and then added back in v9.4 with MOPS heh)
<nikolar> lol nice
<geist> arm64 has a lot more exotic bit instructions and whatnot, but they're more or less all 'simple' in that they're single operations that doesn't require iterating on a thing
<geist> so in that regard it's very much in the same vein as riscv. same general principle
<geist> just a higher level of complexium because they're okay with that
<zid> makes me wonder what xsave does now
<geist> a *lot*
<zid> ?
<geist> and more stuff is added to it over time because it's generic
<zid> what
<geist> it's sort of the last word in saving things
<nikolar> can you rely on it to actually save everything relevant
<geist> tis why there haven't been any additional new instructions added after xsave, since it's a variable sized things that you have to query to see what it can do and then opt into each piece of state
<geist> well, not everything, but it's fully documented what it can do
<zid> oh right it has a header, that probably answers my question
<geist> so if you have AVX512 for example it'll absolutely export a feature of 'i can save the YMM and ZMM bits and heres how much space it occupies at offset Y'
<geist> it's all iterated via cpuid
<zid> yea we know all that
<nikolar> is xsave actually being used i wonder
<zid> yes
<zid> It's useful and cool
<geist> well, nikolar was asking me
<zid> the question was how it interacted with exceptions, given arm had to add flags and stuff to restart it
<n00by> we learn so much during geist's comp arch class lol, thanks :P
<geist> https://github.com/littlekernel/lk/blob/master/arch/x86/fpu.c#L190 is some code i wrote to iterate it though i dont actually use it
<geist> dunno, i assume it's basically idempotent so you can restart it if it traps
<geist> that's the usual strategy
<zid> There's a 64 byte header at byte 513, my guess is that it's probably just accurate to what happened
<zid> if you take a fault then the headers knows the state before the fault happened
<zid> but the manual might know more
<geist> yeah it'd be xrestor that would be more problematic since you may have partially loaded the state
<geist> arm ldm and stm is in general idempotent so you can just restart it
<geist> the stuff with armv7-m is more complicated because it's thumb2 and because IIRC it's allowed to interrupt it because of real-time constraints
<zid> Like, given how long xstore probably takes, I imagine on a busy machine with irqs enabled, it probably gets interrupted a fair amount
<geist> good question: is the cpu allowed to interrupt it. i'm gonna guess no on x86
<zid> yea it might just not be interruptable
<geist> the neat thing xsave has also is it has all the compressed header stuff
<geist> so where state is not changed or all zeros or whatnot it can short circuit it
<zid> yea that was my first part
<zid> there's a 64 byte header so it probably knows what it did or didn't finish
<zid> if it *can* be restarted, it presumably has the info to do it there
xenos1984 has joined #osdev
netbsduser has quit [Ping timeout: 252 seconds]
<n00by> lol, when are we resuming :P