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
scaleww has quit [Quit: Leaving]
<bslsk05> ​'Jesse I have become South America' by driphub tree (00:00:06)
[itchyjunk] has quit [Read error: Connection reset by peer]
deflated8837 has joined #osdev
deflated8837 has quit [Remote host closed the connection]
elastic_dog has quit [Ping timeout: 256 seconds]
deflated8837 has joined #osdev
elastic_dog has joined #osdev
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #osdev
terrorjack has quit [Client Quit]
terrorjack has joined #osdev
<heat> geist, have you tried out amd's TCE flag for explicit page directory translation cache control?
<heat> seems to work pretty much like ARM here. invlpg invalidates the cache for upper page directories
heat has quit [Ping timeout: 240 seconds]
corank has quit [Remote host closed the connection]
corank has joined #osdev
smeso has quit [Quit: smeso]
wgrant has quit [Quit: WeeChat 3.5]
wgrant has joined #osdev
corank has quit [Remote host closed the connection]
corank has joined #osdev
smeso has joined #osdev
corank has quit [Remote host closed the connection]
corank has joined #osdev
DrPatater has quit [Quit: Explodes into a thousand pieces]
DrPatater has joined #osdev
dude12312414 has joined #osdev
corank has quit [Remote host closed the connection]
corank has joined #osdev
fkrauthan has quit [Quit: ZNC - https://znc.in]
fkrauthan has joined #osdev
fkrauthan has quit [Client Quit]
fkrauthan has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
greaser|q is now known as GreaseMonkey
bradd has joined #osdev
LostFrog has quit [Quit: ZNC 1.8.2+deb2 - https://znc.in]
PapaFrog has joined #osdev
<geist> yah looks to me like one of the fallouts of K12 development
<geist> I dunno, i remember asking someone that works on the Linux kernel at work and they didn’t seem to think it was a large win (or a win at all)
terminalpusher has joined #osdev
terminalpusher has quit [Remote host closed the connection]
corank has quit [Remote host closed the connection]
corank has joined #osdev
bliminse has quit [Quit: leaving]
bliminse has joined #osdev
goliath has joined #osdev
Burgundy has joined #osdev
bgs has joined #osdev
danilogondolfo has joined #osdev
justmatt has quit [Quit: ]
justmatt8 has joined #osdev
nyah has joined #osdev
remexre has quit [Ping timeout: 240 seconds]
Left_Turn has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
GeDaMo has joined #osdev
gog has joined #osdev
dutch has quit [Quit: WeeChat 3.8]
dutch has joined #osdev
<gog> það er miðvikudag krakkar minar
xenos1984 has joined #osdev
<GeDaMo> I see your question marks and raise you an interrobang :| ‽
vdamewood has joined #osdev
<nikolar> i one up you with upside down interrobang ⸘
<vdamewood> ⸘Que‽
<gog> get a proper font
<gog> þðþðþðþððþð
<GeDaMo> They're all showing up as 0x3f
<gog> get a proper encoding
<gog> it's eth and thorn :P
<gog> i think they're latin-9 if you're not into utf-8
gildasio has quit [Remote host closed the connection]
<GeDaMo> I'm UTF-8 all the way! :P
<gog> weird
<gog> maybe i'm in latin-9 then
<gog> windows has weird unicode support for non-native apps
<GeDaMo> Ah, Windows :P
gildasio has joined #osdev
<Ermine> Nobody expected Spanish punctuation marks!
<Ermine> gog: may I pet you
<gog> yes
<lav> mew
* Ermine pets gog
<Ermine> Afaik this is true for PS/2 keyboards?
* gog prr
<gog> yes because they're on irq 1
<gog> and the ps/2 controller has a buffer of like 8 bytes i think which is like 4 keystrokes
<Ermine> ... and not true for usb keyboards?
ZipCPU has joined #osdev
<bslsk05> ​www.reddit.com: Reddit - Dive into anything
<gog> i think USB keyboards are polled?
<Ermine> as everything usb
ZipCPU has quit [Remote host closed the connection]
<gog> there might be a mode where usb devices can tell the controller to send an interrupt
<gog> but i don't think low-speed devices can use it, only high-speed and more
<gog> idk enough about it
<GeDaMo> I think Ben Eater did some videos on USB
<gog> he did
<gog> with scopes and everything
heat has joined #osdev
<gog> heat
<gog> hæt
slidercrank has joined #osdev
<Ermine> hey warmth
<heat> HELL
<heat> o
<heat> geist, I can't find any linux patch for it... nor merged code
<heat> either they thought it's a dud and never went on with it (and I can't find public discussion on it), or they never tested
ZipCPU has joined #osdev
<heat> i guess the feature's impact must be minimal given that no one in linux ever gave a crap with invlpgb
<heat> so the IPI is probably the dominant factor here
<Ermine> wdym
<heat> what statement?
<Ermine> I don't understand what feature are you talking about
<heat> again, which one? i talked about 2 of them lol
<Ermine> The one you cannot find any Linux patch for (I guess this is invlpgb?)
<heat> no
<heat> that one is EFER_TCE
<heat> which is a bit AMD added with zen (cuz pseudo-ARM haha) that lets you more precisely control the upper level page table translation cache
<heat> x86 cpus cache the upper level bits but those are always *all* implicitly invalidated with a normal TLB invalidation (even if you're invalidating a single page)
bauen1 has quit [Ping timeout: 240 seconds]
<heat> with EFER.TCE = 1, invlpg (and co.) only invalidates the translation cache of the page table levels that lead directly to the address
<heat> invlpgb is another feature added with zen that lets you do ARM-style TLB invalidation using only a single instruction
<heat> so you don't require IPIs...
<mcrod> hi
<heat> IPIs being inter-processor interrupts btw
<Ermine> Ah, got it, thank you
<mcrod> i did not know that amd_pstate existed as a kernel module
<mcrod> and now i lost a few brain cells
<heat> so my theory is that even if you enable EFER.TCE you may not see substantial benefits because the GAINZ are all overshadowed by the expensive-ass IPIs
<heat> but even then... seems ok to Simply Enable?
<mjg> bruh
<heat> BRUH
<mjg> maybe mapple syroup too expensive to maintain to see gainz?
<mjg> in this aspect
<heat> what
<mjg> only skimmed the above, you dealin with something which fucks with mappings?
<heat> i'm not dealing with anything m8
<heat> i'm looking at EFER.TCE (and also invlpgb)
<mjg> you pulling of a ben shapiro on me now
<heat> i added a nice explanation on EFER.TCE *literally a few messages up*
<mjg> ye so i]m saying the mapple tree code, which was known to add some single-threaded lollers, is probably involved to some extent
<mjg> that ignoring all the fucking perf-killing mitigations
<mjg> so i'm not particularly shocked if a small optimization is invisible
<heat> but that's vm code?
<heat> they didn't even bother enabling it m8
<heat> a search on lore doesn't even yield shit
<heat> same with invlpgb. it's like this cool-ass feature that's mentioned NOWHERE
<mjg> i had seen geist saying his coworker tested and got no win?
<heat> well yes, but I don't know how. there's nothing in upstream at least
<mjg> no prof data so taken with 1 kg of salt, but very plausible due to the above
<heat> invlpgb is like stupidly chockingly weirdly absent too
<heat> did AMD run out of budget for kernel people? :v
<heat> or does it secretly suck and no one knows about it except them?
<mjg> lemme tell you amd is notorious for not optimizing shit in the kernel
<mjg> on one hand that's weird af, on another corporations have their own logic
<mjg> or rather "logic"
<heat> henlo intel, do work on kernal for mee pls!!
<mjg> as much as one can be willing to shit on intel, they did some good from open source perspective
<mjg> albeit i don't know to what extent it was their own call
<mjg> and not being forced
<heat> i mean... it's good for business?
<mjg> they started back when it was not
<mjg> or at least it was not particuarly obvious that it is
<mjg> for example when they contributed ITANIUM to linux
<mjg> that was when they thought the arch would take off
<heat> I T A N I U M
<mjg> what they could have done is only work with MS to have windows support it
<mjg> yet somehow big players like ibm and hp (intel aside) started contributing to linux
<mjg> which is why we are not windows dominated today
<mjg> makes sense to not be on microsoft's mercy for sure
<mjg> even so, you would think ibm would just continue with AIX and hp with HP-UX
<mjg> which at the time were not fucking /dead/
<heat> honestly I don't think vendors work that closely with windows anymore?
<mjg> *today* i don't know
<mjg> early 00s it was either windows or closed-source unix
<mjg> linux and the bsds were some fuckers people considered to be hippies
<heat> wow
<heat> 23 years later linux and the bsds are still fuckers people consider hippies
<mjg> bro
<heat> some things never change!
<mjg> linux is the shit today, in both meanings
<mjg> old farts consider linux to be "not true unix", which if you understands history is in fact a compliment
<mjg> :X
<mjg> not that they know it
<Ermine> and new farts?
<heat> idk let me fart and i'll ask him
<mjg> new farts think an operating system is either iwndows or linux
<mjg> and their opinion on linux is not even opinion on linux
<mjg> but on DOCKER or KUBERNETES
<mjg> or whatever the fuck container do jour they are dealing with
<heat> mjg@freebdsm.org
<Ermine> BDSm
<heat> oh fuck freebdsm.org is an actual site
<mjg> messign with the system itself, not some orchestration on top of it, is niche today
<heat> the missed opportunities!
<mjg> ye, it's mine
<heat> Registered On: 2002-07-10
<heat> lies, you were like 4 years old
<Ermine> What's are the contents? I don't think it's safe to open it where I am now
<heat> it redirects to freebsd.org
<heat> Trust Me
<heat> (tm)
<GeDaMo> It's NSFW but, even worse, no HTTPS :|
<Ermine> even better, time for VPN
<mjg> heat: 16 motherfucker
<heat> mjg, btw yes kernel development and osdev are very niche in todays age
<heat> because you have like 2 or 3 new layers on top of it
<mjg> dude i'm not even talking aobout kernel /development/
<mjg> i'm talking about using the fucking thing
<mjg> going "below" k8s et al is niche af
<Ermine> People around me get bored instantly when I start talking about OSes
<heat> good
<mjg> Ermine: are they "technical coworkers"?
<heat> it's safe to say that it's normal
<mjg> cause you know, a bunch of rnadom folk can't be expected to give a f-word
<vdamewood> heat: I've thought about naming my OS BSDM.
<heat> osdev weirdos are weirdos, and so is everyone else
<gog> i am not a weirdo
<mjg> ey i'm not a weirdo
<Ermine> mjg: no
<heat> maths people can start talking about maths and everyone around them will get bored
* mjg hugs waifu
<heat> DONT HUG ME
<gog> i'll be ur waifu
<mjg> gog: stop, i'm already blushing
<gog> :3
<heat> colon
<heat> threeeeeeeeeeeeeee
<gog> threeeeeeeeeeeeeeeeeee
* vdamewood gives gog fishu
* gog chompf
<heat> Ermine, have you ever had linguistics fuckers talk to you about linguistics?
<mjg> Frank Ucker
<heat> i'll give it an 8/10 in boredom
<Ermine> People still get bored when talking about maths, even though it's math faculty
<heat> ... that's concerning
<mjg> what
<Ermine> heat: I'd love to hear linguistics fuckers
<heat> when technical people talk about technical things, you can enjoy the passion with which they speak, you can feel more or less engaged with the topic, but in general you WILL feel bored
<heat> because it's incredibly technical shit that you don't enjoy or don't know about
<mjg> who contests that
<heat> ermine apparently
<gog> ermine is a weirdo
<heat> yo wtf
<heat> that's way out of line gog
<gog> sorry
<gog> you're right
<heat> go sit in the corner
* gog sits
<mjg> ey heat
<Ermine> XD
<mjg> is this how you talk at work
<mjg> calling people fuckers 'n shit
<heat> i dont work
<heat> but no, in general no
<mjg> is this how you intend to talk
<mjg> aw
<heat> is this how YOU talk at work?
<mjg> i did at polish companies, but in my defense they were doing it first
* Ermine imagines heat talking like this on LKML
<mjg> at rh you can totally do it "in private"
<kof123> linguistics, is this a perl joke?
<heat> duuuuuuuuuuuuuuuuuuuude
<heat> if you don't talk like an asshole on the lkml you are doing something wrong
<Ermine> loooooooool
<heat> kernel development is all about people with big egos
<mjg> ye if you don't call someone a moron did you even send an e-mail?
<mjg> i got a funny story for you heat, albeit it may not match your genz humor
<heat> did you see the meme I posted earlier?
<mjg> at my first gig i had a massive linux fanboy
<mjg> no
<Ermine> Well Linus apparently was more expressive in the past
<mjg> anyhow dude took everything torvi claims as gospel
<bslsk05> ​'Jesse I have become South America' by driphub tree (00:00:06)
<mjg> while not understanding any of it
<heat> it's hilarious
<heat> Ermine, linus is still "expressive" and so are other people
<heat> kernel people are all blunt, passionate people with big egos, strong opinions, strong NIH syndrome and sometimes stupidly fundamentalist opinions on so much random shit
Left_Turn has quit [Remote host closed the connection]
<Ermine> Not so expressive as he used to be
<heat> the ones that aren't like this usually just do this as their day job (aka not "kernel hackers")
Left_Turn has joined #osdev
<heat> if al viro doesn't call me a cunt when replying to my email i'll even feel insulted!
<Ermine> Soo, I have all of this, can I be a kernel hacker
<mjg> heat: what the fuck is that video
<mjg> i don'\t get it
<mjg> => genz
dayimproper has joined #osdev
<Ermine> On behalf of genz I admit that I didn't get this meme too
<heat> Ermine, yes
<heat> cmon guys
<heat> the point is that it's ungeteable
<heat> that's the funny bit
<mjg> genz humor
<heat> it's just stupid, mindless, circlejerk fun
<mjg> aight
<mjg> haha/10
<Ermine> Ah, this is an abtract meme
<Ermine> like E
<mjg> ey heat
<mjg> i got something for you
<heat> yes, E is the perfect embodiment of the genz meme
<mjg> you watch it and tell me what you think
<heat> ok
<mjg> ever heard of bagman?
<heat> no
<mjg> aight
<Ermine> YTPs are funnier
<mjg> fuck
<bslsk05> ​'bagman integral part.2 [Français]' by Fred Fortin (00:09:17)
<mjg> i'm not sure this is the one, it should be
<mjg> tons of gore
<mjg> ye it's the one
<heat> unfunny
<mjg> WHAT
<mjg> this was the shit man
<mjg> generational gap right there :X
<mjg> next you gonna tell me fight club sucks
<Ermine> Where can I find cdecl description for x64 ? Is it part of SysV abi?
<gog> yes
<gog> rdi, rsi, rdx, rcx, r8, r9, stack
<heat> mjg, no, fight club is good, i just haven't seen it yet
<Ermine> gog: thank you
<gog> mjg: fight club was good actually and people deeply misunderstood it
<heat> is this a norm joke
<nikolar> Seriously mjg, you're keeping us in suspense
<heat> all setup no punchline?
<GeDaMo> rcx is replaced by r10 for syscalls
<gog> although invisible monsters is my fav palahniuk novel
<mjg> which story, the fFANBOI
<mjg> so torvi wrote an e-mail how bsd devs are fucking idiots
<mjg> fanboi's conclusion: clearly, fucking idiots
<heat> fax
<mjg> then it turned out torvi was wrong about the tech thign (which triggered him to call bsd folk idiotz)
<mjg> fanboi take on it? refuses to acknowledge
<mjg> gg
<heat> linux torvald is perfect
<mjg> i am agreed
<mjg> here is a loller from that workplace
<mjg> a new hire who was there to replace all of us decided to do database migration to another server
<mjg> he wanted to do it with rsync from cron
<gog> hhhhhhhhhhhhhh
<mjg> so he wrote lol scripts to handle all of it
<gog> let me guess it didn't even work a little
<mjg> turns out he rsync'ed the wrong way
<mjg> past that the switch happened
<mjg> :x
<gog> oooops
<gog> i don't like dabataes
<mjg> you know it's gonnna be good when someone wants to be asleep during migratin
<gog> i want to be asleep right now
<heat> i want 2 sleep forever
<heat> not dead, not alive, just slep
elastic_dog has quit [Remote host closed the connection]
awita has joined #osdev
<gog> like cthulu
elastic_dog has joined #osdev
<bslsk05> ​lkml.org: LKML: Andy Lutomirski: Re: [PATCH 2/8] x86: use exit_lazy_tlb rather than membarrier_mm_sync_core_before_usermode
<heat> interestin
<heat> re invlpgb
dza has quit [Quit: ]
dza has joined #osdev
dza has quit [Client Quit]
xenos1984 has quit [Read error: Connection reset by peer]
dza has joined #osdev
bauen1 has joined #osdev
danilogondolfo has quit [Quit: Leaving]
<gog> it's almost lumchtime and i am hunger
<gog> i'm so hungry i can't focus
<zid> I think that's just an excuse, but, I like excuses for not working
<gog> it's definitely just an excuse
<gog> also i need to migrate my react component to functional rather than class-based
<gog> which is gonna be annoying
<zid> I'd kill myself instead ngl
<gog> i considered it but i decided to wait until after i had food
<gog> can't make decisions like that on an empty stomach
<zid> The rule is always boss first anyway, when you do your mass shooting suicide
xenos1984 has joined #osdev
dayimproper has quit [Ping timeout: 256 seconds]
<heat> gog fullest stack developer ever
<heat> efi? ✅ kernal? ✅ aspnetcore? ✅ react? ✅
<heat> microcode? ❌
<sakasama> You forgot Captain Crunch.
<heat> Hotel? Trivago
<gog> heat: gimme time i'll star doing microcode
<gog> when i get my ba i'll be a fully-stacked full-stack developer
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
dza has quit [Quit: ]
<FireFly> vewy vewy smol code
<heat> gog, i'm sorry but at the given moment we will not be proceeding with your application as a full stack developer due to lack of versatilty
dza has joined #osdev
vdamewood has joined #osdev
<bnchs> meow
<gog> heat: :<
<gog> dang what else do i need to learn?
<gog> do i need 5 years of experience with a product that's only existed for 2?
<gog> do i need a Ph.D. in mathematics?
<heat> 15+ YoE in riscv AI accelerated blockchains
<gog> dang
<heat> also a PhD in medicine? how? yes.
<heat> the true fullstack developer not only deals with the computer, but the human body and the wonders of the universe
<bslsk05> ​goomics.net: Goomics 345
<Ermine> What people learn to make microcodes
<mjg> fullstackoverflow developer
<mjg> overtaken by fullchatgpt developer
<heat> ... i've met one of those
<heat> scary shit dawg
<mjg> bro
<bnchs> 20+ YoE in blockchains
<mjg> its the standard
<mjg> vast majority of people in this industry who work as programmers are nt even interetsed in it
<mjg> and never were
<kof123> wait wait wait. when money is involved, people lie? what !?!?!?!?!!?
Left_Turn has quit [Ping timeout: 265 seconds]
<heat> mjg, sorry m8 but if the first reaction to "how do I do X?" is to ask magic smarty pants robot, fuck
xvmt_ has joined #osdev
<heat> it's not just "im in it for the money", it's "im in it for the money and I'm a dumbass"
Left_Turn has joined #osdev
<kof123> i didnt mean that, but sure. i was hoping "what about when no money is involved?" "same"
xvmt has quit [Ping timeout: 240 seconds]
xvmt_ is now known as xvmt
<kof123> i meant more as a ...take a job you arent really interested in...put it on your resume....you will be assumed you must love that forever and ever
m3a has quit [Ping timeout: 240 seconds]
<FireFly> being a full stack developer just means specialising in data structures you can't push anything more onto
<sakasama> It means you embrace hashes everywhere, from breakfast to product deployment.
<FireFly> pretty sure that's just called using nix
<awita> Hello guys I have a problem: I was writing a function with just a couple of prints. That function is not even called. If the function contains only a couple of lines of code (be it prints or whatever), my kernel will boot correctly (with qemu-system-i386 -kernel). However, when I add in more code, the kernel will stop booting and qemu will stay on the "Booting from ROM" message
<awita> This makes me think that I have either an incorrect GDT, an incorrect linker script, or both? Or something similar?
<heat> link to yer project
<bslsk05> ​Xayiide/ChamacOS - Proyecto de fin de máster: sistema operativo sencillo de programación fácil (0 forks/0 stargazers/GPL-3.0)
<heat> do you know where it hangs?
<heat> info registers in qemu's monitor should let you get there
danilogondolfo has joined #osdev
<heat> mov eax, isr_fault_handler
<heat> call eax
<heat> what??
<heat> > iret
<heat> ^^ I can't remember if NASM is fucked up here, but IIRC everyone says you should use iretd
<awita> do i paste the dump from info registers?
<mjg> heat: there's been saying that nobody got fired for buying from ibm
<heat> i mean, sure, but it's not really helpful here
<mjg> heat: efw years down the road it will be "nobody got fired for copying chatgpt/whateverthefuck"?
<heat> i can't interpret your registers for you :)
<mjg> s/?//
<mjg> did i mention how much people don't care?
<awita> the mov eax, ... call eax I saw on another project that it preserves EIP, which I thought useful when taking notes
<awita> but I don't really know If it makes sense now
<heat> it what now?
<heat> eip is your INSTRUCTION POINTER, how exactly are you preserving it?
<heat> call func does essentially "mov eip, func"
<heat> mov eax, func; call eax does "mov eax, func; mov eip, eax"
<heat> simplified to "mov eip, eax" :)
<heat> sorry, "mov eip, func"
<heat> note: mov eip doesn't exist, and calling indirectly and calling directly is *slightly* different, but definitely does not matter now
<heat> anyway, take your "hang" data and llvm-symbolize/addr2line it if you still have debug data/symbols in a kernel binary somewhere
<heat> I remember you also want pushad/popad and not pusha/popa which only save 16-bit registers
<heat> so... you may be getting an interrupt/exception and corrupting the heck out of state, and that's your problem
<gog> meow
<awita> Hmm
<awita> What do you mean with "llvm-symbolize/addr2line"
<heat> google those tools
<awita> I've never used lvm
<awita> llvm*
<heat> then addr2line it is
<bslsk05> ​linux.die.net: addr2line(1) - Linux man page
<awita> didn't know that tool, thank you
<gog> addr2meow
<awita> But I know I can get exceptions (division by 0 eg) and handle them correctly
<awita> "correctly" I don't do much, I just print the name and then enter an infinite loop with every exception (in isr.c)
<heat> please see where you're hanging
<heat> poking very-existent holes in your ISRs are a just a shot in the dark
<awita> okay, thank you!
<zid> heat: intel syntax says iret == iretd, both 0xCF
<zid> just depends on cpu mode, but you *must* write iretq
<zid> because every assembler generates CF for 'iret' even in long mode, not rex.w + cf
<heat> hm, right
<heat> but that's not the case with pusha/popa right?
<gog> there's no push/popa in long mode
<zid> pusha = 60, pushad = 60
<zid> depends on cpu mode
* gog pushes heat
<heat> "Some assemblers may force the operand size to 16 when PUSHA is used and to 32 when PUSHAD is used. Others may treat these mnemonics as synonyms (PUSHA/PUSHAD) and use the current setting of the operandsize attribute to determine the size of values to be pushed from the stack, regardless of the mnemonic used."
<heat> NASM does not appear to do this, though
gildasio has quit [Ping timeout: 240 seconds]
<gog> hi
<zid> no
<gog> :(
<zid> I need to redo a bit of ff8 and I cbf
<zid> so I am staring blanking into space
<gog> i'm struggling to keep working
<gog> this is a pain in my ass and i'm getting very frustrated
danilogondolfo has quit [Quit: Leaving]
PapaFrog has quit [Quit: ZNC 1.8.2+deb2 - https://znc.in]
PapaFrog has joined #osdev
<gog> jaæslkgæaldjsgh our dev branch is broken and i can't build it
<gog> fucking
<mjg> you polish?
<mjg> ćśóżź
<gog> no i'm matte
<mjg> kurwa mać
<mjg> you can write that
<mjg> correctly
<zid> kurwa mać
<gog> witam
<mjg> chuje
<gog> i'm nto polish tho
<mjg> how did you get the ć
<gog> í didn't
<gog> æ
<zid> [15:07] <mjg> ćśóżź
<zid> such hard
<zid> to get letters literaly right in front of me, on irc
<gog> thatis a e
<gog> i have a bizarre encoding problem for konversation on windows
<mjg> zid: you may check the message which predates it
<mjg> 16:06 < gog> jaćslkgćaldjsgh our dev branch is broken and i can't build it
<mjg> has the ć twice
<zid> now that's an ae
<zid> nope*
<gog> mjg: that's an a e
<zid> your encoding is geborkt
<mjg> you are either fucking with me or my terminal is
<gog> either mjg's is or mine is
<gog> i'm not
<zid> mjg's broken
<gog> it might be mine
<zid> it's mjg
<gog> because gedamo was complaining earlier that eth and thorn weren't rendering for him
<gog> þ ð
<zid> worksforme
<gog> hmm
<mjg> same
<zid> thorn, eth
<zid> not eth thorn
<mjg> still ć though for the above :p
<zid> mjg is decoding into LATIN-1 or whatever
<zid> I am decoding to utf-8
<gog> must be
<mjg> i'm pretty sure i'm decoding to wutf-8
<gog> witam
<zid> you didn't even send the same characters back btw mjg
<mjg> 16:09 < gog> ţ đ
<mjg> how bout these
<gog> t with cedilla, d with line
<mjg> ye that's how i see it
<gog> that was thorn and eth respectively
<gog> the eth is right
<gog> sorta
<gog> i guess it can be rendered like that but icelandic has a curly eth
<mjg> lemme try a different terminal
<zid> you're defo decoding into latin-1 then
<zid> cus utf-8 doesn't work like that
<mjg> i refuse to admit any wrong doing
<gog> that wouldn't be latin-1
<heat> kurwa mác
<gog> i think it'd be latin-15
<nortti> mjg: do my þ and ð also look like gog's?
<gog> yes i see thorn and eth
<gog> latin-2 but also -13 and -16
<zid> I copy pasted what gog said originally, then what mjg copy pasted back
<mjg> nortti: no
<zid> c3 a6 vs c4 87
<mjg> huh
<zid> I can't find a charset where this works
[itchyjunk] has joined #osdev
<FireFly> the origial message looks like a fine utf-8 U+e6 to me
<zid> yea gog's is fine, it's mjg's quote that breaks it
<zid> he decoders it wrong
<zid> then sends it back as utf-8 as he sees it
wereii has quit [Quit: ZNC - https://znc.in]
* mjg sadfaces
<mjg> it's your linux that's wrong
<mjg> seriously though you are probably right, but i can't be arsed to figure out what's up
<FireFly> % echo 'þð' | iconv -f utf8 -t iso-8859-1 | iconv -f iso-8859-2 -t utf8
<FireFly> ţđ
PapaFrog has quit [Ping timeout: 240 seconds]
<FireFly> hm
<zid> see
<nikolar> windows and unicode
<nikolar> always a mess
<FireFly> I wonder if the raw bytes being sent from gog were iso-8859-1 and got handled by lenient clients, or if it's actually utf-8
<zid> I always get uppercase A with umlaut
wereii has joined #osdev
<zid> when I try to find his c'
<nortti> < FireFly> I wonder if the raw bytes being sent from gog were iso-8859-1 and got handled by lenient clients, or if it's actually utf-8 ← my þð displaying differently would lend some credence to that
<gog> it's possible i'm sending in 8859-1 even though i have it set to utf8
<gog> because i'm using a qt app on windows
<zid> lte's google
<gog> maybe i have a wrong iconv.dll loading
<nortti> some IRC clients had a cursed mode where they'd send iso-8859-1 if all your characters were encodable in that, utf-8 otherwise
<mjg> two wrongs make one right
<zid> You sent the right utf-8, gog
<FireFly> yes but, you copied from your IRC client's rendering, which means your client wolud've already potentially converted it
<zid> oh okay lemme try again
<mjg> strace it?
<mjg> if not ssl'ed
<nortti> gog: can you privmsg oonbotti2 your þð?
notzid has joined #osdev
<zid> gog say it again
<zid> before I ping out
<nortti> ah that also works
<gog> nope it's me
<zid> gog send pls
<gog> i have the server set to cp1252
<gog> ð þ
<zid> 1252 is the best encoding
<zid> :gog!~Ada@user/gog PRIVMSG #osdev :▒ ▒
<zid> :D
PapaFrog has joined #osdev
<FireFly> yeah that's not really helpful
gog has quit [Quit: Konversation terminated!]
<nortti> does confirm it's not utf-8 at least
gog has joined #osdev
<FireFly> yeah ig
<gog> æ ð þ
<mjg> now it works
<FireFly> ægree
<mjg> 16:32 < gog> æ ð þ
<FireFly> hooray!
<mjg> no ć in sight or other shit
<zid> yea now it works
<gog> i could've sworn i had it in utf8
<mjg> 16:09 < gog> ţ đ
<mjg> not this either
<FireFly> so then the diff is just falling back to iso-8859-1 or iso-8859-2 when decoding
<FireFly> which I guess makes sense that it'd be locale-dependent
<FireFly> (iso-8859-2 seems to be the one covering polish)
<nikolar> ć
<mjg> ćśś
<nikolar> đščžć
<zid> I used a client I know definitely doesn't do weird translations
<mjg> zid: that's what i see
<mjg> case closeted
<zid> so my client is 'clever' and knows if you send garbage you must be sending *specific* garbage
<mjg> what's your client
<FireFly> I don't know what you mean by that
* zid wonders what ends up in the log files
<mjg> waifu porn
<mjg> that's what
wereii has quit [Quit: ZNC - https://znc.in]
notzid has quit [Ping timeout: 256 seconds]
<Ermine> mjg: this one is on heat's onlyfabs
<zid> Oh right I was doing squaredle game
<Ermine> onlyfans
* mjg subs
<zid> oh, fucking, PUPIL
<zid> of course
<zid> stuid square game
wereii has joined #osdev
<mjg> fuck me is linux one massive hack or what
<mjg> struct fd f;
<mjg> f = fdget_raw(fd);
<mjg> wat.dat
<nortti> what is the hack here?
<mjg> struct fd { struct file *file; unsigned int flags;
<mjg> };
<mjg> so what happens here, do they really return 12 bytes?
<nikolar> where did you find that
<mjg> static inline struct fd fdget_raw(unsigned int fd)
<mjg> { return __to_fd(__fdget_raw(fd));
<mjg> ultimately this ends up as:
<mjg> static inline struct fd __to_fd(unsigned long v)
<mjg> { return (struct fd){(struct file *)(v & ~3),v & 3};
<mjg> }
<mjg> so no problem in codegen but ffs
<mjg> nikolar: in fucking linux, that's where mate
<bslsk05> ​elixir.bootlin.com: file.h - include/linux/file.h - Linux source code (v6.3.2) - Bootlin
<mjg> the hackery is there to facilitate not derefing the file obj
<gog> we all know linux is one massive hack
<mjg> very alegorical
<gog> bless you
<zid> are we protestant or catholic osdev?
<nikolar> orthodox
<gog> neopagan
* gog prays to freyja
<Ermine> ecclesiarch
<GeDaMo> Cthulhu
<Ermine> UEFI spec claims that on x64 cdecl is used. Then it goes on describing something which is clearly not cdecl
<Ermine> what am I reading wrong
<zid> The difference is whether that bless you was free or if you had to pay for it
<zid> windows cdecl
<gog> windows cdecl uses the same mechanism but different register order
<gog> it's like edx, ecx etc etc
goliath has quit [Quit: SIGSEGV]
<gog> rdx rcx
<Ermine> so windows cdecl != sysv cdecl?
<gog> i call it windows x64 and sysv x64
Turn_Left has joined #osdev
<gog> yes
<Ermine> TIL
<gog> microsoft always gotta have a different ABI
<gog> because they're special
<Ermine> snowflakes
<zid> https://cdn.discordapp.com/attachments/417023075348119556/1108412558899154944/image.png Oops I accidentally cast fire magic and both sides had reflect status
<Ermine> kaboom
Left_Turn has quit [Ping timeout: 246 seconds]
<gog> ka-BLAM
<heat> Ermine, cdecl is not a thing
<heat> "cdecl" depends on the compiler
<heat> they were never compatible
<bslsk05> ​cdecl.org: cdecl: C gibberish ↔ English
<heat> mjg, anyway you fucking idiot what's wrong with that snippet?
<heat> ^^ kind of language I am looking to use at work
<Ermine> Put it in your CV
<Ermine> "Good at opensource negotiation style"
<Ermine> even conversation maybe
<Ermine> Anyway, the spec might be a little bit clearer on this topic. OTOH its audience does not include noobs...
<heat> what spec
<mjg> heat: i'm busy delivering value to our customers
<heat> and what topi
<heat> c
<Ermine> uefi
<heat> efi uses the microsoft x64 calling convention
<heat> search for that
<heat> i'm not sure if they document it in detail in the efi spec
<gog> EFIAPI
<gog> the spec tells what registrs and what order params are
<Ermine> heat: 2.3.4: "All functions are called with the C language calling convention. Detailed Calling Conventions for more detail". But okay, Detalied Calling conventions are here
<gog> in this case you can assume they always mean microsoft's convention
dude12312414 has joined #osdev
<gog> since there is more than one calling convention for c
<zid> the windows abi is fucking terrible btw
<zid> "Should I run back and go save?" "Nah there's no way I fuck this next bit up" *fucks it up*
<gog> oops
<zid> aand rinoa gets berserked *attempt 4*
slidercrank has quit [Ping timeout: 256 seconds]
awita has quit [Ping timeout: 246 seconds]
goliath has joined #osdev
xenos1984 has quit [Ping timeout: 240 seconds]
xenos1984 has joined #osdev
randm has quit [Remote host closed the connection]
randm has joined #osdev
<geist> itanium.
<nikolar> Sparc
<gog> dec alpha
<gog> dec alpha was 64 bits before you were born young man
<heat> i hope you realize all these architectures were released before I was born
<heat> oldies.
<geist> CRAY CRAY
<heat> i technically predate the first amd64 CPU for like 6 months
<heat> in a few years we'll get the first teen osdevers that predate ARM64
<heat> then I will also feel old
<bslsk05> ​lkml.org: LKML: Andy Lutomirski: Re: [PATCH 2/8] x86: use exit_lazy_tlb rather than membarrier_mm_sync_core_before_usermode
<heat> TL;DR it seems they don't think 4096 PCIDs are enough to use invlpgb
innegatives has joined #osdev
<heat> also, does your coworker have any numbers on EFER.TCE? I can't find anything, it's not even implemented in Linux
<heat> the only annoyance I can think of is that you need to be a good bit more careful when reclaiming page tables (reclaim first, flush after)
terminalpusher has joined #osdev
<gog> teen osdevers backwards is 'srevedso neet'
<heat> thank you
<gog> yw
gog has quit [Quit: Konversation terminated!]
xenos1984 has quit [Ping timeout: 240 seconds]
GreaseMonkey has quit [Quit: No Ping reply in 180 seconds.]
xenos1984 has joined #osdev
dza has quit [Quit: ]
bauen1 has quit [Ping timeout: 240 seconds]
dza has joined #osdev
gog has joined #osdev
<gog> hi
innegatives has quit [Quit: WeeChat 3.8]
<geist> heat: yeah that's the problem. the smallish number of ASIDs causes a problem, because the invlpgb stuff only really works well if you have a lot of them active at a time
<geist> heat: i dont. i think the idea is someone tried it, no real advantage vs the complexity of needing additional code paths to deal with it, so never made it into linux
<heat> yeah
<heat> i mean, it doesn't sound like you need many/any aditional code paths to me. but I haven't tried it sooo
<geist> doesn't mean someone couldn't optimize it and get .1% speed increase, but then probably not enough gain to worth the time, unless someone at AMD does it
<heat> it may just be that the advantage isn't all that great, given x86 cores are already great at page table walking
<geist> yeah, i think basically you just need to track whether or not you're flushing a leaf node, and then maybe hadd some additional flushing if you're detaching a page table
<heat> and really really really under load systems are probably dominated by tlb shootdowns anyway
<geist> right, because the microcode is already there do invalidate the page cache, you're baisclaly just turning off that path so you can run shorter microcode on regular TLB flushes with the tradeoff that software may be able to do a better, more surgical take on it
<heat> the "execute a boatload of instructions while interrupting everyone" bit
<geist> whereas ARM just doesn' thave the microcode in that case
<heat> i'm suspecting that I may have some problems with the current page table reclaiming
<geist> Though i guess thinking about it, having a regular invlpg instruction shoot down both TLB entries and the page table walker cache isn’t really an O(N) operation, more like O(2)
<geist> because it just matches the TLB entry at the VA, + the single TLB walker cache entry that covers VA
<heat> i believe it's entirely possible I may be doing invlpg and then removing the PT
<geist> From what i understand how page table walkers work anyway
<geist> heat: i think on x86 that sequence would be fine
<geist> a) you remove the PT entry, flush it. then later you go and remove the PT, there's no risk a new PTW TLB gets created between those two events
<geist> because to create it the cpu would need to walk and find a valid PT
<heat> oh, right!
<heat> yeah I guess if it doesn't speculatively cache things
<geist> (based on the assumptio that a PTW entry wont get created for anything but a hit)
<heat> I think the SDM has a whole subsection on things that may make it cache
<geist> in the case of ARM the reason you'd have to flush the PTW separately maybe is you remove the PT entry, flush just that TLB
<geist> then go and remove the page table, tou want to flush the cache then because otherwise if you come along later and attach a new PT at that slot it might use the old walker entry which points to another physical page
<geist> or, it might use the old walker entry even when it's unmapped, and accidentally interpret whatever is at that physical page as a valid PT
<geist> (or probably get some sort of corrupted page table exception)
<heat> yep
<geist> i have had this bug before and it took like a week to debug it
<geist> it showed up as removing a kernel thread stack, whcih freed a page table, and then creating another thread shortly afterwards which added another table back in the same slot
<heat> yeah you mentioned it, i still haven't made my arm stuff Do The Right Thing
<geist> and then boom. either new stack was badly mapped or it would get random permission faults
<heat> hasn't even been merged really. I think I want to get it running on a real ARM core before marking it as ✅
<geist> the i think safe thing to do on arm is always do a full flush on every tlb walk, ie, make it behave as x86 invlpg
<geist> and then i think you're always safe, you're just doing more work than necessary
<geist> s/tlb walk/tlb shootdown
<heat> yeah
<heat> wait, can't you trivially know the page table is empty, and avoid the PT shootdown if not?
<heat> instead of *pte = 0; shootdown_safe(); if (pt_is_empty()) reclaim(); we could do "*pte = 0; if (pt_is_empty()) {reclaim(); shootdown_safe();} else normal_shootdown();"
<heat> or something like that
<heat> i don't know what the conditions for the page walk caching are. if they involve a successful lookup, it Just Works I think
<geist> well that's the idea
<geist> in general in order to cache up more than one unmap at a time, i have the code drill into the page table heirarchy, recursively, unmapping up to N pages at each leve
<geist> and then as it exits back up the recursive chain, the next level up will check 'did you just empty the PT?' and then do the PTW shootdown there
<heat> yeah I did that too
<geist> that would let you do multiple single page shootdowns before checking to see if that cleared the PT
<geist> downside is yeah you can't easily combine a single shootdown and a upper PTW shootdown
<geist> if you had some sort of lookaside list that tells you how many active entries are in the PT so you can trivially discover it, then it might make sense to do it at the place where you unmap the PT entry
<heat> my pt_is_empty() is called right after zeroing
<geist> yah i call it a level up, after returning from the lower level
<geist> thus allowing some sort of natural batching
<heat> the level up just zeroes its own pte when the pt was indeed freed
<heat> the rest was automagically done already
<heat> btw how do you split large pages?
<heat> what happens on OOM?
<geist> generally just abandon the whole thing, let it fault back in
<geist> but yes if you split a large page in the *kernel* where it's fatal, that's a problem
<geist> in zircon we have some flags we pass down through the map/protect/etc logic that says how it can handle a failure
<geist> most of the time failure is okay, just drop the page and let page faults sort it out
<heat> i also have a funny problem I have not tackled yet, with KASAN on arm64. i'll need to arbitrarily BBM those pages :crying emoji:
<heat> i mean, I guess just spinning works. but the arbitrary trap sucks
<heat> but yeah. i've considered just making most of OOMs on MM critical data structures just a panic
<geist> also would basically just avoid a situation where splitting large pages in the kernel like the plaque
<geist> plague even, plaque is also bad
awita has joined #osdev
<heat> like, if I'm mid way through an mprotect and have altered vm structures and now I have an OOM, fuck?
<heat> you're either *really* careful and adopt some sort of transaction-like system, or you're oopsie
<geist> well hang on a sec, if it's not the kernel then just let it deal with it
<geist> provided you err on the side of unmapping it
<geist> instead of leaving it halfway
<geist> you've updating your mm structures, now worst case it has to fault it back in
bauen1 has joined #osdev
gildasio has joined #osdev
slidercrank has joined #osdev
\Test_User has quit [Ping timeout: 240 seconds]
meithecatte[m] has joined #osdev
innegatives has joined #osdev
<innegatives> On IBM PC, before interrupt 0x19, does CPU execute instructions directly from the disk?
<meithecatte[m]> No, it executes instruction from ROM, where the BIOS is stored
<meithecatte[m]> the disk interface is too complicated to be supported by the CPU directly
<innegatives> meithecatte[m]: But DOS 2.0 disk 1 contains int 0x19 at 2C location, at what point does it start executing what's in the disk? Disk itself contains the interrupt to load it to 7c00
<meithecatte[m]> are you reading a description somewhere or looking at the disk itself?
<innegatives> Looking at the disk
<meithecatte[m]> Can you link/send me the file?
<innegatives> ok wait
<bslsk05> ​winworldpc.com: WinWorld: IBM PC-DOS 2.00 (5.25)
<innegatives> ndisasm -b16 Disk01.img
frkzoid has quit [Ping timeout: 256 seconds]
<innegatives> meithecatte[m]: what do you think
<meithecatte[m]> I think you're disassembling the BPB as code
<meithecatte[m]> (see https://wiki.osdev.org/FAT32#BPB_.28BIOS_Parameter_Block.29)
<bslsk05> ​wiki.osdev.org: FAT - OSDev Wiki
<meithecatte[m]> note the jump to 0x2e at the very beginning
<innegatives> So int 0x19 happens inside the ROM?
<innegatives> If I'm making an emulator, should I code this ROM myself or is it available somewhere?
<meithecatte[m]> are you emulating the IBM PC 5150?
<innegatives> I'm emulating 8086 so far, I want to run DOS, not sure what 5150 is, I guess I'm doing AT but it comes with 8088 only
<innegatives> Yes, 5150
<meithecatte[m]> there's images here for AT: https://www.minuszerodegrees.net/5170/bios/5170_bios_revisions.htm
<bslsk05> ​www.minuszerodegrees.net: minuszerodegrees.net
<meithecatte[m]> for 5150 there's https://www.minuszerodegrees.net/bios/bios.htm
<bslsk05> ​www.minuszerodegrees.net: minuszerodegrees.net
<innegatives> I should have said XT
<innegatives> Thanks
<meithecatte[m]> IIRC the CPU jumps to F000:FFF0 or something like that
<meithecatte[m]> with the ROM mapped so that it's the last 16 bytes
<meithecatte[m]> double check in the Intel SDM released at the time
<innegatives> If I have emulated 8086, will that work with XT software, given that it is 8088?
<GeDaMo> Software wise, they should be the same
<GeDaMo> The 8088 had an 8 bit data bus, 8086 had a 16 bit data bus
<GeDaMo> Also, have you looked at Ken Sherrif's series on the 8086? http://www.righto.com/2023/01/inside-8086-processors-instruction.html
<bslsk05> ​www.righto.com: Inside the 8086 processor's instruction prefetch circuitry
<innegatives> no, will do
<innegatives> thanks
<GeDaMo> It's based on reverse engineering the hardware from die shots but there may be useful info for you there
<innegatives> I guess I don't really need to emulate the BIOS ROM stuff, right? I can just load the DOS directly to 7c00 and emulate the bios interrupts myself
<meithecatte[m]> that's known as high-level emulation
<meithecatte[m]> ultimately the BIOS doesn't do anything that regular software can't also do by itself
<meithecatte[m]> on these old machines, anyway
<meithecatte[m]> you'd need to handle interrupt hooking, too
awita has quit [Remote host closed the connection]
<innegatives> you mean populating the IVT?
<meithecatte[m]> no, I mean, some software, like caches for the disk for example, might replace the entries in the IVT with their own, save the original on the side, and then call the original interrupt handler
<innegatives> why would that need special handling?
CalculusCats has quit [Quit: Meow Meow Meow Meow Meow Meow Meow Meow]
freakazoid332 has joined #osdev
CalculusCats has joined #osdev
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
innegatives has quit [Quit: WeeChat 3.8]
<heat> geist, i don't think it's that simple
<heat> like, in this case, yeah
<heat> although it's debatable whether you should do that for certain types of mappings like locked memory
<heat> lets imagine you mprotect multiple VMAs (or vm regions or what have you), and you're able to make progress on half the regions, but you OOM when splitting or something. what should you do?
<heat> you can't have a partial operation like this
<heat> so you either never take OOMs on this kind of MM code, or you implement a contrived transaction method, or... ?
<meithecatte[m]> or return preemptive OOM if you have less than N pages available at the start of the operation ;3
<meithecatte[m]> should be fine as long as you only need O(1) allocations for a given call
<heat> how do you know how many pages you need?
<heat> a 10GB range could have 1 region, or 10GiB/PAGE_SIZE regions
<heat> and then you don't ask directly for pages, the allocator does, and that can get even more complicated, etc etc
bgs has quit [Remote host closed the connection]
heat has quit [Remote host closed the connection]
heat has joined #osdev
<meithecatte[m]> what should I do to have my cross-compiler include freestanding headers like stdint.h?
innegatives has joined #osdev
innegatives has quit [Quit: WeeChat 3.8]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
Burgundy has quit [Ping timeout: 240 seconds]
<heat> Did You Know Windows Maps The Kernel And Drivers Using Large Pages Even When Protections Dont Match Up?
<heat> seriously, what the fuck
<heat> the kernel .text can be accidentally mapped RWX!
<nortti> performance, I guess?
<heat> yes, you shaved off a couple of nanoseconds sometimes. on the other hand, your .text is mapped writable
<heat> not even mjg would suggest this garbage
<heat> i hope
<zid> jimbzy: happy now? I have mobile garden.
<nortti> they used to run font rendering in kernel space so I'm not too surprised they might have rwx kernel
GreaseMonkey has joined #osdev
innegatives has joined #osdev
Gooberpatrol66 has quit [Quit: Leaving]
<gog> hi
Gooberpatrol66 has joined #osdev
<innegatives> gog: hello
<heat> nortti, you can't simultaneously be at the forefront of in-kernel CFI and then pull shit like this... I hope the book is wrong here
<gog> heat
* gog puts a block of finned aluminum on heat
<gog> let that sink in
<heat> elonshit mushitsky moment
<heat> he ruined that expression forever
<gog> i like elon musk
<gog> i think he's a very cool guy with good ideas
<gog> he loves censorship, for example
<gog> but only when a state asks a private company to do it on their behalf
<gog> and only when it's a state whose ideological premises he agrees with
<heat> loving censorship is based
<zid> I love censorship, when it improves my life, personally
<gog> meow
<meithecatte[m]> meow!! ^_^ :#
Turn_Left has quit [Read error: Connection reset by peer]
<gog> :o
<meithecatte[m]> s/:#/:3/g >:(
<gog> :3
<gog> colon threeeeeeeeeee
<zid> but shift-3 gives £
<zid> weirdoes
<gog> you're the weirdo with the weird keyboard
<zid> ISO for life, ANSI is trash.
<heat> ç
<gog> i have ISO
<gog> but it's £
<gog> alt shift 3
<gog> altgr shift 3 i mean
<zid> acceptable
<gog> but also iso shit
<zid> ISO amazing
<gog> no
<gog> braces and brackets
<gog> really annoying
<zid> "also I love doing math in fractions of an inch"
<gog> i do actually
<meithecatte[m]> oh no
<meithecatte[m]> what have i started
<zid> you know that erm
<zid> the brackets/braces are in the identical spots in engb and enus right?
<zid> and on ansi and iso
<zid> sounds like you just have a weird iceland layout
<gog> idk what type of keyboard this is
<gog> it's swedish/norwegian/danish
<gog> the keycaps are anyway
scaleww has joined #osdev
<zid> oh god the () are offset by one
<zid> on iceland layout
<zid> and the brackets are {[]} instead of {}[]
<gog> yeah
<zid> whoever designed this was infact, smoking crack
<zid> iceland bad, iso good
<gog> ég hatið þessu helvitis lyklaborð
<zid> You have helvetica syndrome? :o
<gog> já
<zid> I'll contact the biolab
<gog> takk
<heat> my () are on shift+8/9
<heat> I also have {[]}
<zid> yea that's why I can't use your weird onyx layout
<gog> maybe it's the british who are weird
<zid> no, engb and enus both are ()
<heat> it's great m8, this is the only sane layout
<zid> on 90
<meithecatte[m]> blasphemy, () are 9 and 0
<meithecatte[m]> this is the only correct choice
<gog> meithecatte[m]: may i pet you
<meithecatte[m]> it is allowed :3
* gog petpetpetpet
<meithecatte[m]> >.<
<zid> I'd like to know who decided lots of non-english keyboard layouts should use {[]}
<zid> (so i can stab them in the face)
<heat> i can't use your yank-derived layout either
<zid> yank layout is derived from english
<gog> i'm getting more use dto this keyboard
<zid> (down to oral)
<gog> but having to use my thumb on altgr to get brackets is irritating
<gog> there's no comfortable way to do it with one hand
<gog> except with thumb and stretch
<heat> that's because you're not used to it
<gog> :<
<heat> altgr+7 for a bracket is second nature to me
<gog> i mean it's getting there for me i just don't like it
<heat> now, the travesty that is the mac pt keyboard (where they unified pt_PT and pt_BR) is a fucking travesty
<zid> enlish invested english, and also the typewriter
<zid> (160 years before america claims to have done)
<heat> you need to evoke satan to get a bracket on a pt layout macbook
<gog> i'll sell my soul to satan to get rid of a macbook if there's no other way
<heat> it makes it unusable for me. plus cmd vs ctrl
<zid> wikipedia's US bias strong in this article
<heat> the actual system is super solid, barring weird temperature policies trying to sterilize me
<zid> Literal chronological list of typewriters
<gog> U S A U S A
<zid> the US is 5th on it
<zid> "The typwriter, invented in america.."
Terlisimo has quit [Ping timeout: 246 seconds]
<zid> What they mean is first commercial product, tying "first" to "first one to be abused by capitalism" is also very american :p
<zid> IBM selectric *is* rad as shit though
<heat> the USA is the greatest country on earth, that's why god went there
<zid> Jesus' tour of US was my favourite part of the bible
<heat> "create a church in the middle of Utah"
<heat> "fucking Utah"
<heat> ??
<heat> "yes, Utah. deal with it"
Terlisimo has joined #osdev
<zid> "also, cool magic underwear bro, keep it up"
<gog> temple garmnets pls
goliath has quit [Quit: SIGSEGV]
<bslsk05> ​lore.kernel.org: Re: Excessive TLB flush ranges - Nadav Amit
<heat> this mofo is using chatgpt as a source in the LKML
<heat> how is linus supposed to keep calm and not insult anyone
<nortti> < heat> you need to evoke satan to get a bracket on a pt layout macbook ← on finnish it's altgr/option+89 for [] on both but on PC {} are altgr+70 but on mac they're option+shift+89
<heat> yes its some silly combination like that
<heat> INSANE
<heat> i do not have spider fingers, yet
<nortti> honestly I can see why they did that, especially with all the random dingbats you can produce on the mac layout, but it does need some getting used to aye
<heat> i see why they did that, most mac users are normal people that have typed {} like twice in their whole life
scaleww has quit [Quit: Leaving]
<nortti> the real problem though is microsoft not having had time to upgrade to the 2008 finnish keyboard that has the ability to, y'know, type all the letters used in the finnish language
<nortti> literally could not believe switching windows 10 to finnish in 2022 and still needing to install that same third-party package I used on windows 2000 in the year of our lord 2010 to be able to write šampoo
<mcrod> heat: :(
<gog> heat :(
<heat> heat: :(
<zid> nortti: being able to type that is a sham
innegatives has quit [Ping timeout: 240 seconds]
terminalpusher has quit [Ping timeout: 245 seconds]
nyah has quit [Quit: leaving]
potatojs has joined #osdev
<potatojs> hello?
<potatojs> anyone?
<potatojs> are all irc's usually this dead?
<bnchs> no
<potatojs> hey
<bnchs> be more patient
<potatojs> thought no one would come
<potatojs> but true
<meithecatte[m]> wait, did you join a minute a go and are already like "is this chat dead"
<zid> zoomers in action
<potatojs> yes i am very new to irc
<heat> shut up AI biden
<nortti> irc clients generally are not configured to alert users on incoming messages, so you should not expect immediate responses
<bnchs> zid: this is why IRC clients need to put a grand theft auto 5 gameplay in the corner of the window
<potatojs> ok
<zid> "I posted on this technical forum and screamed hello into the void and nobody immediately offered me champagne, 0/5 stars"
<heat> bnchs, BRUH not even gta v