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
heat has quit [Ping timeout: 246 seconds]
<gog> GOG_LOG
<mcrod> i knew you'd appreciate it
nyah has quit [Quit: leaving]
<kazinsal> glog
<gog> i appreciate you
* gog pet kazinsal
<kazinsal> nya~
<gog> good boy
<gog> https://i.imgur.com/1lFoe1q.png yay my syscall thunk works
<bslsk05> ​i.imgur.com <no title>
knusbaum has quit [Quit: ZNC 1.8.2 - https://znc.in]
knusbaum has joined #osdev
<mcrod> pog
joe9 has quit [Quit: leaving]
<gog> i'm closer to deleting a bunch of code i hate that i replaced with more code
heat has joined #osdev
CaCode_ has joined #osdev
CaCode has quit [Ping timeout: 245 seconds]
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
MiningMarsh has quit [Ping timeout: 245 seconds]
Celelibi has quit [Ping timeout: 252 seconds]
hrberg has quit [Quit: No Ping reply in 180 seconds.]
hrberg has joined #osdev
dude12312414 has joined #osdev
Celelibi has joined #osdev
knusbaum has quit [Quit: ZNC 1.8.2 - https://znc.in]
doppler has quit [Ping timeout: 245 seconds]
doppler has joined #osdev
knusbaum has joined #osdev
_whitelogger has joined #osdev
qubasa has quit [Ping timeout: 244 seconds]
andydude has quit [Ping timeout: 260 seconds]
knusbaum has quit [Quit: ZNC 1.8.2 - https://znc.in]
lucartc has joined #osdev
gog has quit [Ping timeout: 260 seconds]
Jari-- has quit [Remote host closed the connection]
lucartc has quit [Remote host closed the connection]
heat has quit [Quit: Client closed]
Maja has quit [Ping timeout: 244 seconds]
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
andydude has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
stolen has joined #osdev
Maja has joined #osdev
CaCode_ has quit [Ping timeout: 246 seconds]
Yoofie5 has joined #osdev
Yoofie has quit [Ping timeout: 252 seconds]
Yoofie5 is now known as Yoofie
ghostbuster has quit [Ping timeout: 252 seconds]
CaCode has joined #osdev
knusbaum has joined #osdev
<zid> I hereby decree that English is to be renamed "Common Tongue"
<zid> So that we can all ask each other if we speak the common tongue etc like a fantasy novel
stolen has quit [Quit: Connection closed for inactivity]
GeDaMo has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
zxrom has joined #osdev
hmmmm has quit [Read error: Connection reset by peer]
hmmmm has joined #osdev
andydude has quit [Ping timeout: 250 seconds]
Maja has quit [Ping timeout: 260 seconds]
CaCode has quit [Ping timeout: 252 seconds]
zxrom has quit [Quit: Leaving]
zxrom has joined #osdev
zxrom has quit [Remote host closed the connection]
zxrom has joined #osdev
zxrom has quit [Remote host closed the connection]
zxrom has joined #osdev
zxrom has quit [Client Quit]
dennis95 has joined #osdev
<Ermine> Yay!
<sham1> what
zxrom has joined #osdev
gareppa has joined #osdev
ajunior has joined #osdev
ytret has joined #osdev
gareppa has quit [Quit: WeeChat 3.8]
gareppa has joined #osdev
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ytret has quit [Ping timeout: 246 seconds]
gareppa has quit [Quit: WeeChat 3.8]
ajunior has joined #osdev
[itchyjunk] has joined #osdev
CaCode has joined #osdev
gog has joined #osdev
MiningMarsh has joined #osdev
<gog> hi barbie
<Ermine> hello oppenheimer
<Ermine> gog: may I pet you
<gog> yes
<mcrod> hi
* Ermine pets gog
* gog prr
<gog> hi barbei
elastic_dog has quit [Ping timeout: 245 seconds]
<Ermine> barbei == barbie ei
elastic_dog has joined #osdev
<zid> I have become gog, wearer of sock
<gog> hi barbie
Left_Turn has joined #osdev
<zid> gog when are you becoming an S-Rank adventurer
<mjg> is the oppie movie any good
<mjg> i expect typical hollywood embelishment
<mjg> (good in this cone
<mjg> context means accurate)
<gog> i havent' seen it yet
<gog> i don't know if i will
gareppa has joined #osdev
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ajunior has joined #osdev
awita has joined #osdev
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
zxrom has quit [Quit: Leaving]
<mcrod> yes you will
Yoofie has quit [Ping timeout: 245 seconds]
Yoofie has joined #osdev
heat has joined #osdev
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
<gog> hi
<mcrod> hi
<gog> it's me software developer barbie
<sham1> Should have been the 128th career model
<heat> The accompanying book, I Can Be a Computer Engineer, was issued in 2013 together with I Can Be an Actress.[10][11] The book received extensive criticism, especially beginning in November 2014, for depicting Barbie as relying on two male friends to program the game she is designing.[9][11][12] In addition, they need to help her after she accidentally infects her and her sister Skipper's computer with a virus (via the pink heart-shaped USB stick she
<heat> wears around her neck), after ignoring advice from her (female) computer teacher
<heat> hahaha ha what the fuck
<heat> how do you blunder this badly?
<heat> mjg, btw yes i liked oppenheimer a lot
<heat> it's the typical christopher nolan movie, aka not a lot of action but lots of "action" (politics and such)
<heat> IIRC dunkirk was very similar, if you saw that one
<sham1> heat: probably made Barbie look absolutely incompetent, which is a bad message to send
<kof123> not a lowly coder, not a dev, an engineer!
<sham1> Rockstar developer
<sham1> Whilst not even programming in Rockstar
<heat> game dev barbie works at bethesda
<heat> 100hr work weeks and harassment? nice!
<sham1> Game development companies sound absolutely hellish when it comes to that
<gog> ubisoft, activision-blizzard
<gog> epic
<gog> bethesda
<sham1> This is why indie developers are necessary
<gog> each has at least one high-profile incident involving sexual harrassment
<sham1> ubisoft?
<gog> ubi has the most egregious one
<heat> bbbbubuubut Inspired by historical events and characters, this work of fiction was designed, developed, and produced by a multicultural team of various beliefs, sexual orientations and gender identities
<heat> ubisoft inclusive good!
<gog> performative wokeness
<Ermine> butbutbut traditional values where
<sham1> buttbuttbutt
<sham1> That's my values
<heat> Inspired by historical events and characters, this work of fiction was designed, developed, and produced by a monocultural team of traditional family and christian values
gog has quit [Remote host closed the connection]
<sham1> You made gog leave!
gog has joined #osdev
<gog> hi
<Ermine> Sounds like an ad for "Smuta" game
<Ermine> hi gog
<sham1> beep
<gog> beep
<heat> what's smuta?
<heat> is it this shit? https://smuta.games/
<bslsk05> ​smuta.games: Главная | Смута
<Ermine> Exactly
<Ermine> Russian government, unfortunately, paid attention to videogames and sponsored this crap
<Ermine> So there are Patriotic(tm) video games
<Ermine> which promote Traditional Values(tm)
<sham1> rip
terminalpusher has joined #osdev
janemba has quit [Ping timeout: 245 seconds]
<bl4ckb0ne> is there hardbass in the game
<bl4ckb0ne> and can you squat with the heels on the floor
<Ermine> no, beginning of xvii century is too early for this
* zid puts everyone in timeout
<Ermine> zid: ?
<GeDaMo> What did they make vodka out of before potatoes? :|
<zid> serfs
<gog> hi
<Ermine> hi gog
<zid> gog was busy taking s-rank adventurer exam
<gog> what is that
janemba has joined #osdev
<Ermine> heat: I'm thinking about adding ifunc or ifunc-like functionality into musl, and I don't see any way to make it work good in case of static linking
<GeDaMo> What's ifunc?
<bslsk05> ​sourceware.org: GNU_IFUNC - glibc wiki
<zid> like iframes but better
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Ermine> GeDaMo: yes
<GeDaMo> Sounds like you'd have to do some kind of run-time linking
<zid> we generally call that dynamic linking, GeDaMo
<GeDaMo> Or maybe an indirect dispatch
<zid> but yea, I think the way it does it is indirect
<zid> hence the i
<zid> (I can't think of what it's actually useful for though)
<GeDaMo> I assumed something like different versions based on which SIMD versions were available
<Ermine> iiuc linker selects the right implementation before launching the program
<zid> gcc already has that
<Ermine> And yes, this is useful for simd and supporting cpus that don't have simd
<zid> __attribute__((target("sse4.2")))
<heat> Ermine, they won't take it
<heat> not worth futzing about
<zid> target_clones
<zid> won't work across .so files without the dispatch though yea
andydude has joined #osdev
<heat> and yes, there's no real alternative for static linking, usually you default to something safe
<heat> i.e for example glibc defaults to SSE2 stringops
<heat> wow i.e for example is beautiful
<heat> i.e: e.g: ex: for example
<zid> qed
<mcrod> hi
<zid> where are you in blight town now
<mcrod> not
<mcrod> i'm at sen's fortress
<heat> he killed them all
<heat> are you up there?
<Ermine> heat: I was thinking in assumption that they would accept it so it is possible to think about technical side of the problem
<mcrod> up where? i just said sen's fortress
<heat> Ermine, it is not, because they don't like the idea
<zid> oh sen's is like, either kinda annoying, or the easiest area, depending on if you use your run button
<heat> mcrod, sens is very vertical
<heat> so i assume "no, i'm not up there"
<mcrod> i've died in that area more times than I can count
<mcrod> so, the next strategy is run
<zid> yea, need your run button
<mcrod> first off, fuck the ball
<heat> bRUh
<zid> I think you didn't like sens until I showed you it afaik heat?
<heat> i still dont particularly like sens but that trick is nice yeah
<zid> trick == skill
<heat> of running up against the axe-thingies
<Ermine> so far I have seen only hand waving about ifunc being misdesigned
<zid> heat thinks being good at things is a magic trick
<zid> (I think practising is cheating)
<Ermine> But iirc there was interest to simd-accelerated stringops
<heat> there isnt.
<zid> libgcc_s
<heat> they keep handwaving with really new solutions that literally NO ONE HAS TRIED BEFORE
<heat> but they don't care, they don't work on that, and trivial ideas for accelerated stringops etc etc are all completely rejected
elastic_dog has quit [Ping timeout: 264 seconds]
<heat> like fucking ifunc. everyone has ifunc, but nooooooooooooo it's too impure for musl!
<Ermine> When there were new solutions?
<heat> they wanted to do weird hybrid C-inline-asm hybrid implementations
<heat> which 1) what? 2) doesn't solve the ifunc thing so you end up only being able to rely on safe extension (like SSE2)
<mcrod> this is very mildly related, to the point of not being related at all
<Ermine> Was it discussed on ml or in irc?
<heat> irc
<mcrod> but it kinda sucks that gcc/clang can't inline qsort()
<mcrod> it'd be nice if the comparator function was inlined out
<heat> patches welcome!!!
<heat> i tell you what std::sort does inline things
<mcrod> yes
<mcrod> it does
<heat> C++ best
<sham1> ew
<heat> stfu javafan69
<mcrod> the thing is, I would expect if you're not giving a shit about code size, the compiler would generate a qsort_compiler_optimized() thingy
<Ermine> heat: when the discussion took place? I want to consult my logs
<heat> import java.utils.SortInterface.*;
<zid> gcc just really bad at inlining function pointers, not quite sure why
<heat> Ermine, i don't know, you can grep for SIMD or similar keywords, thats usually what I do
<mcrod> this happens on clang too
<zid> half the C++ frontend is dedicated to DEVIRTUALIZATION
<zid> but gcc just can barely do it at all in C
<Ermine> okay
<sham1> gcc is just bad
<mcrod> can you show me an example where the function pointer gets inlined
<mcrod> because I've tried like 10 things and yet, "call heat_at_home"
<mcrod> or rather, `lea whatever the fuck, [rip + heat_at_home]` or whatever the assembly is
<mcrod> you get the idea
<zid> https://godbolt.org/z/Tedr1WMYr This is 100% the most complex code gcc can inline
<bslsk05> ​godbolt.org: Compiler Explorer
<zid> https://godbolt.org/z/Wz5GvMb56 this one annoys me
<bslsk05> ​godbolt.org: Compiler Explorer
zxrom has joined #osdev
<heat> why?
<mcrod> so what I'm hearing is, C++ can be more efficient than C in some cases
<bslsk05> ​www-old.cs.utah.edu: Alchemy: Software
<mcrod> not because it's *C++*
<zid> cus I sometimes wish to generate code, heat
<zid> using a compiler
<zid> and the compiler is not doing what I wish of it
<heat> that last godbolt looks fine to me?
<heat> unless you want it to make up a new compiler symbol and generate a relocation for that
<mcrod> having to call a function to compare during a sort is sad
<heat> which *i guess* works
<zid> I don't want a relocation
<zid> I want an call
<zid> not a mov
<heat> right, so you want a symbol and a relocation
<heat> thanks
<zid> I do not want a symbol
<zid> nor do I want a relocation
<zid> this isn't -fPIE
<heat> what the base address is or isn't is only determined at link time
<zid> mmm yea, I need the link time fixup, I don't need a full symbol and relocation though
elastic_dog has joined #osdev
<zid> a local symbol or whatever, idk elf
<zid> weak?
<zid> HIDDEN
<heat> yeah a local HIDDEN __gcc_abs_0xdeadbeef = 0xdeadbeef; and then a relocation to come with it
<zid> gcc patch pls
<heat> why do you care though? this seems like a very specific use case
<zid> yes
<heat> also my idea will probably have issues dealing with various -mcmodels
tomaw has quit [Remote host closed the connection]
<zid> lots of C tends to be "very specific use case" though to be fair
<zid> else you'd be using RUST
<mcrod> RUUUUUUUUUUUUUUUUUUUUUUUUUUST
<heat> i.e on x86_64 funcptr a = <addr>; a(); is implicitly an mcmodel=large-like call
<heat> that could or could not be relaxed into a more efficient sequence
<heat> but afaik x86 linkers don't generally support linker relaxation (barring one or two relocs IIRC)
<zid> x86 linkers are bad is what I am hearing
<heat> kinda
<sham1> x86 in general is bad
<zid> x86 is good, but there's a lot of inertia built up in bad practices and software
<heat> they don't do the same level of instruction rewriting as ARM64 or riscv do
<sham1> This wouldn't have happened in Itanium
<zid> if we started fresh on amd64 we'd have a much different environment, not a lot of it would have happened again
tomaw_ has joined #osdev
terminalpusher has quit [Ping timeout: 246 seconds]
tomaw_ is now known as tomaw
<gog> hi barbie
<Ermine> barbei
<Ermine> want photoshopping skills
<heat> i only have gimping skills sorry
<Ermine> i don't have even them
<gog> i have programming skills
<zid> I bet heat would make a great gimp
<zid> freebsd themed
<mcrod> ok iron golem is scary
<heat> bruh
<heat> you found the bonfire btw?
<mcrod> yes
<heat> ok good
<heat> that bonfire is such a garbage bonfire
<mcrod> yes it is
<heat> seriously the devs are assholes for that one
<mcrod> but i also have a great club+4
<mcrod> it packs quite a hit
<heat> a heat
<mcrod> okay the grabs are actually fucking annoying
<heat> zid, ds1 backwards run when?
<mcrod> doesn't help that great club takes about 400 years to swing
<heat> his grab is super telegraphed bruh
<mcrod> maybe I should've named this character babe ruth
<mcrod> I know
<mcrod> but he does it in the middle of a swing
<mcrod> every time
<heat> hey if you don't want to do the iron golem you can just skip him
<heat> it's super easy to do the skip, Believe Me
zxrom has quit [Quit: Leaving]
<mcrod> no
<zid> ds1 backwards kinda hard, gwyn first is annoying
<zid> I mean, <REDACTED FINAL BOSS>
<zid> There's an 'alphabetical' run
<heat> you cant do REDACTED FINAL BOSS first
<zid> Asylum demon first works out very nicely :P
<mcrod> OH MY GOD IT HAPPENED AGAIN
<mcrod> FUCK
<mcrod> i've beaten 2, 3, and elden ring
<bslsk05> ​'Can you beat Dark Souls in reverse order?' by Minoan (00:31:01)
<zid> you go NG+1
<mcrod> but DS1 might kill me
<zid> after you get to G
<mcrod> it might actually kill me
<zid> then asylum demon skip
<zid> what happened
<mjg> have you seen the dark souls challenge where you are supposed to beat SEVERAL GAMES back-to-back
<mjg> ... without taking damage
<mjg> ... without leveling
<mjg> ?
<heat> starting with the wolfie and then the 5 dukes makes sense, then REDACTED FINAL BOSS
<heat> mjg, yeah
<mjg> OPTIMAL
<mcrod> i should've kindled this bonfire...
<zid> why are you
<zid> taking damage
<zid> what from?
<mcrod> iron golem
<mcrod> the club isn't going to work
<heat> have you noticed he gets a bit wobbly?
<mcrod> he grabs every single time I swing
<heat> had too much to drink
<zid> oh, club absolutely works
<zid> the grab has a beeg hitbox though
<heat> you can always just Do The Skip
<zid> you gotta really get out of it
<mcrod> also doesn't help that the fire keeper is... dead
<mcrod> and here I have a soul
<heat> who killed her?
<mcrod> no idea
<heat> i bet it was patches that fucking cunt
<mcrod> went to her to give soul
<mcrod> literally the only message
<mcrod> "Dead"
<mcrod> thanks. that helps a ton.
<zid> She dead.
<heat> dont worry you have a firekeeper nearby
<heat> she's right after the iron golem
<heat> /s
<mcrod> holy shit
<mcrod> heat you're a genius
<heat> i am?
<heat> haha i totally am!
<mcrod> he was wobbly
<mcrod> and i hit him
<mcrod> and he fell
<mcrod> what's this light thing
<heat> congrats idiot
<heat> go to the orb
<mcrod> i did already
<mcrod> now i'm being carried off to... anor londo
<mcrod> i don't think I should be here yet
<heat> you should
<mcrod> ok
<zid> Nooo
<zid> you did the sequence break
<mcrod> huh
<zid> You're missing 4 areas between sens and anor londo, you accidentally did the konami code while flying
<zid> and went to the wrong place
<heat> you were supposed to go to new londo, kill ingward and drop down a dark hole
<zid> kill ingward? smh
<zid> heat murderer
<heat> sorry, hug ingward
<heat> with arrows
<heat> to death
<mcrod> where the hell is the nearest bonfire
<zid> just go past the guys
<heat> yeah run past them down a set of stairs
<mcrod> ok
<heat> there you'll find your new bae and a bonfire
<zid> You want the nice little open plaza, it's on your left there
<mcrod> before i went down an elevator and killed a demon thing
<mcrod> i assume i'm in the wrong place
<heat> yes, go up
<mcrod> ok
<heat> you killed a gargoyle right?
<mcrod> yes
<zid> Literally a named enemy you've already fought
<heat> yeah you went past bae
<zid> "demon thing"
<zid> :p
<heat> up the elevator, go forwards and enter the building thing
<mcrod> ok
<mcrod> ah yes
<mcrod> bless
<heat> you do realize from now on i can either be giving you great information or leading you on to O&S
<mcrod> i know that O&S is eventually going to happen
dude12312414 has joined #osdev
<mcrod> nice mimic...
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
<zid> pikachu and snorlax*
<zid> lightning spear chest?
<mcrod> yes
<mcrod> with 2 guards
<zid> I am a god
<zid> at remembering what is in chests
<mcrod> new stats: vitality 25, endurance 24, strength 28
<zid> that's a fuck
<zid> lot of strength
<zid> holy shit
antranigv has joined #osdev
<zid> can you 2h the demon greathammer with that
<heat> 28 str sucks
<zid> I mean
junon has quit [Remote host closed the connection]
<zid> it'll be nice for the bkh he doesn't have
<zid> with the 20 dex he doesn't have
<zid> but I'd rather have put it into end
<zid> not really a problem though
antranigv has quit [Remote host closed the connection]
antranigv has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<zid> I think i am having a stroke and that guy's n ame is antigrave
<zid> antigrav*
<mcrod> huh gold fog wall
<heat> wrong direction
<heat> go down the elevator
<zid> gold.. fog!?
<zid> ARE YOU HACKING?
<zid> oh, redacted bucket fog
<gog> i'm hacking
<gog> i'm hacking
* gog hacks up a hairball
<Cindy> does gog's body hack together a hairball?
<Cindy> that seems accurate to modern software
<gog> true
<Cindy> except modern software developers hack together a pile of shit
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 260 seconds]
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 244 seconds]
Burgundy has joined #osdev
andydude has quit [Quit: Leaving.]
zxrom has joined #osdev
<sham1> Can confirm
<gog> hi
<gog> i'm a moden software developer
<gog> i'm hacking together shit
<sham1> Can't help hacking together shit when the deadlines approach at light speed
<heat> yes
<heat> old software developers never hacked together shit
<heat> never
<heat> nuh uh
<bslsk05> ​www.tuhs.org <no title>
<heat> woops wrong window haha happens sometimes!
andydude has joined #osdev
<andydude> There should be a hashtag for gog's hairball
<gog> 69th edition unix
<andydude> #GogHairBall
<heat> System LXIX
<sham1> Goes well with the hairy ball theorem
<andydude> gog: GoLang = UNIX-4.0
ajunior has joined #osdev
whereiseveryone has joined #osdev
<gog> i'm gonna reimplement unix in golang
dutch has quit [Quit: WeeChat 4.0.2]
dutch has joined #osdev
<sham1> Unix but better
dennis95 has quit [Quit: Leaving]
<GeDaMo> But will it have a decent programming language? :P
<nikolar> go does have cgo
<gog> i'm gonna implement rustc and cargo in go
<gog> then cgo in rust
<gog> then clang in rust
<gog> then everything in c the way god intended
<nikolar> that's definitely a way to do it
awita has quit [Ping timeout: 245 seconds]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 246 seconds]
jjuran has quit [Ping timeout: 245 seconds]
<gog> hi
<sham1> hi
<gog> what's shaking
jjuran has joined #osdev
<zid> my stationwagon
<nikolar> hello
<heat> gog, im going tow rite onyx in linux
<heat> linux kernal language
<sham1> eBFS
<heat> it'll go like ___________________________________________________________________fput
<Ermine> heat: how dtrace goes
<heat> dtrace goes <barfs out awk's manual>
<heat> here pal, it goes like this
<gog> more underscore
<gog> more more more more more
<sham1> I love using reserved C identifiers
<moon-child> honestly just get rid of all the non-underscore characters
<moon-child> encode the name of your identifier in unary using the count of underscores
<sham1> Sounds like an esolang
<heat> __________________________________________________________________________________________________
<sham1> In fact I think there is one exactly using underscores
<heat> actually though you can't do that
<heat> because then it's not a reserved identifier
<heat> hence, lame and smelly
<moon-child> 'fput'=0x66707574 so represent it with a string of 0x66707574 underscores
<heat> but its not a fucking reserved identifier dman it moon-child are you not paying attention
<puck> _ is 95 so represent it with 95 underscores,
<heat> you need at least a non-underscore char
<moon-child> why
<moon-child> REAL MEN implement the c++ stl entirely out of underscores
<sham1> And this is why C++ is banned
<heat> WAIT SORRY
<heat> YOU DONT NEED A NON-UNDERSCORE CHAR
<heat> CARRY ON
<moon-child> ty heat
<heat> All external identifiers that begin with an underscore.
<heat> All identifiers that begin with an underscore followed by a capital letter or by another underscore (these reserved identifiers allow the library to use numerous behind-the-scenes non-external macros and functions).
<heat> hence _ is reserved, __ is reserved
<heat> etc etc
<gog> thank god i'm not a real man
<heat> aw they're banning char *🐱 = "cat";
<heat> fuckers
<gog> WHAT
<heat> / both are ill formed in C23. Emoji are not XID_Start characters
<gog> dang
<moon-child> literally unusable
<gog> i'm forking the C standard
<gog> gog-c will allow emoji identifiers
<heat> char *__🐱();
<mjg> this is bullshit
<mjg> i'm going to RUST
<sham1> Rust doesn't allow for 🦀 as an identifier
<sham1> It even has a custom error for it
<moon-child> literally unusable
<gog> heat my branch with the syscall madness is now 1136 insertions to 310 deletions
<bslsk05> ​play.rust-lang.org: Rust Playground
<sham1> > error: Ferris cannot be used as an identifier
<heat> gog, thats great gog, im proud of you
<sham1> It's cute
<gog> thank you
<gog> can i have headpats
<heat> 5 files changed, 1199 insertions(+), 31 deletions(-) here
* heat pat head gog
* gog prr
<sham1> BTW, does anyone know if there's a good way to validate clang-format
<sham1> Like to see if the YAML configuration is actually valid
<GeDaMo> There's a language called Mojo which uses the fire emoji as a file extension
<sham1> (Fuck YAML)
<sham1> YAML is the worst configuration language
<heat> sham1, rust people have shit jokes
<heat> give me GNU glibc abort() jokes all day baby!
<sham1> heat: yes
<heat> haha abortion!
<bslsk05> ​docs.modular.com: Modular Docs - Mojo🔥 FAQ
<gog> lol abortion
<sham1> For any other emoji Rust just says: > error: identifiers cannot contain emoji
<sham1> But of course the crab is special and sacred
<heat> emoji -> emogus -> amogus sus
<sham1> emoji si sus
<sham1> is*
linear_cannon has joined #osdev
Turn_Left has quit [Ping timeout: 245 seconds]
SGautam has joined #osdev
Left_Turn has joined #osdev
* geist yawns
* sham1 rolls
Left_Turn has quit [Remote host closed the connection]
<heat> yawns not yaws
<heat> fuckin genz
Left_Turn has joined #osdev
andydude has quit [Quit: Leaving.]
<sham1> Yer one to talk
* gog mews
<gog> hi barbie
<sham1> It's LTO time
<geist> LLLLLTTTTT OOOOO
<heat> LTOOOOOOOOOOOO
<heat> LTO RU ST RUS TUR UST U PGO CARGOOOOO
<sham1> BITCONNEEEEEEEEEEEEEEEEEECT
<Cindy> gog is the barbie :3
<sham1> wait, wrong thing
<heat> fuk yeah BITCONNNNNNNNNNNEEEEEEEEEEEEEEEEEEEEEEECCCCCCCCCCCT
gareppa has quit [Quit: WeeChat 3.8]
<heat> this bitconnect bloke is pretty coola nd trustworthy
<heat> not like those ponzi scheme ppl in crypto
<sham1> I trust him implicitly because he's a meme
dutch has quit [Quit: WeeChat 4.0.1]
dutch has joined #osdev
aws has joined #osdev
aws has quit [Client Quit]
<Ermine> Maybe I should do some operation systems development today
xenos1984 has quit [Read error: Connection reset by peer]
<sham1> Maybe you should
eck has quit [Ping timeout: 244 seconds]
eck has joined #osdev
<gog> i did some operation system development
xenos1984 has joined #osdev
vinc has joined #osdev
<heat> Ermine, what r u working on
<Ermine> Another attempt to get into i915 development
<heat> oh no
<Ermine> what
<heat> mind doing something else?
<heat> i915 is horrendously complex
<heat> both the hardware and the driver
<Ermine> Gpus are comlex
<Ermine> complex
<heat> yes
<heat> you should work ont hat linux bootloaer thing you wanted to do
wereii has quit [Quit: ZNC - https://znc.in]
<Ermine> Well idk where I should start reading i915 code so let's do that bootloader thing
<SGautam> I've been having some difficulty in understanding how a network stack works, suppose I have to make request to an IP address like 74.128.54.175 or something, so first my application will package that as an HTTP request like "GET 74.128.54.175", then the network driver will package that as a TCP/IP request, and then the actual NIC driver will add an ethernet layer to it to forward it to the router w/ the associated MAC.
<SGautam> Am I right?
<heat> not quite
<heat> lets say you're using python to do an http request
<Ermine> in HTTP you put file you want to GET, not ip
<heat> with fucking requests idk (I think that's deprecated but who gives a shit)
<heat> r = requests.get('https://api.github.com/user')
<heat> requests may use CURL, i don't know, lets assume python crafts the http request itself
<SGautam> reading
<heat> they resolve the host (api.github.com) using DNS (involves UDP/TCP to a bunch of shit), craft the request (it's just a bunch of weirdly formatted plain text), send it through TCP (in this case, cuz https is tcp:443)
<heat> where sending through TCP involves doing something like send(sock_fd, buffer, buffer_len, 0), that gets to the kernel
<heat> kernel's tcp code looks at your call, copies all the data, crafts new packets and/or appends to existing ones, then tries to "send" whatever it can
<heat> sending to TCP basically involves calling the underlying layer, which may be IPv4 or IPv6
<SGautam> And the application must pass the IPv4/6 identity of api.github.com to the IP layer, along w/ the TCP request, correect?
<heat> the application does not do TCP correctly
<heat> erm
<heat> s/correctly//
wereii has joined #osdev
<heat> directly*
<heat> that's what i wanted
<heat> assuming v4, the ipv4 code looks at your "send" crafts IP headers with a full dest and IP options and whatnot, sends it to the next layer
<heat> but before sending it to the next layer(!!), you route it internally
m5zs7k has quit [Ping timeout: 245 seconds]
<SGautam> Why route it internally?
<heat> i.e do you need to send it through a gateway (a "router"), is it on a local network, etc. gets you information on how the next layer is supposed to send it
m5zs7k has joined #osdev
<SGautam> Ah, so the router / gateway will tell me if this packet will go to the outside world or stay on LAN?
<heat> no
<heat> that's something your routing table has
<heat> usually informed by the router itself when configuring the interface
<SGautam> they resolve the host (api.github.com) using DNS (involves UDP/TCP to a bunch of shit), craft the request (it's just a bunch of weirdly formatted plain text), send it through TCP (in this case, cuz https is tcp:443) <-- Who does this? The network driver?
<heat> python?
<heat> the ethernet layer gets all that info, and puts together the ethernet header with the hardware addresses for the destination, etc
<heat> if you need to go through a gateway, destination = router's mac. if it's on the local network, destination = destination ip's mac
<heat> then the ethernet layer just pushes it to the queue discipline (which we will ignore), which pushes it to the NIC driver
<heat> driver takes your packet, sets up the internal TX data structures, sends
<heat> dun
<SGautam> Hmm... and then the router will probably add its own set of layers for things like NAT.
<heat> maybe
<SGautam> So that when the packet for my request comes from somewhere in California to my ISP's network, they know how to get it to me.
<SGautam> I mean that's what NAT does, right?
elastic_dog has quit [Ping timeout: 244 seconds]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<heat> lets ignore NAT, NAT is annoying
<heat> also NAT usually does not need headers AFAIK?
<SGautam> Does the ISP assign my IP address a port then?
<heat> NAT basically multiplexes your one public ip (your router's)
<heat> your IP address does not have a port?
<gog> NAT just caches which local IP corresponds wo which external port
awita has joined #osdev
<SGautam> Suppose my public IP is 40.152.34.192, now I'm guessing that many devices in my area will have this same IP.
awita has quit [Remote host closed the connection]
<heat> no
<heat> that's unique
<heat> your phone and your laptop (connected to the same local network) will have the same public IP
<heat> different private IPs
<SGautam> that doesn't seem right cuz
<bslsk05> ​github.com: Onyx/kernel/kernel/net/tcp.cpp at master · heatd/Onyx · GitHub
<bslsk05> ​github.com: Onyx/kernel/kernel/net/ipv6/ipv6.cpp at master · heatd/Onyx · GitHub
<SGautam> That means we can only have 4.9 billion unique devices online
<bslsk05> ​github.com: Onyx/kernel/kernel/net/ethernet.cpp at master · heatd/Onyx · GitHub
<bslsk05> ​github.com: Onyx/kernel/drivers/net/e1000/e1000.cpp at master · heatd/Onyx · GitHub
<heat> plenty of sources there for you
<heat> SGautam, no
<clever> when you send packets to the router, it will overwrite the src ip, and claim its coming from 40.152.34.192
<clever> the router will keep track of that, and fix the dest ip when the reply comes back in
<heat> yes, and it will also play games with ports
<heat> so connections from the same port don't fuck you over
<clever> yeah, if the port was already in use, it also messes with that
<SGautam> Ah, OK, so the NAT is like a router -> devices level thing.
<heat> NAT is done entirely on the router, yes
<gog> i'm routing i'm routing
<heat> now that I realize it, I really did overuse auto in my networking code
<heat> ew
<SGautam> So the role of the ISP is to simply forward the request from the router to the destination. And they charge money for it because it is them laying down the actual wiring infrastructure to your home.
<heat> yes
<heat> and because you actively pay to peer with other ASes in internet exchanges
<SGautam> thanks for clearing up some stuff man
<SGautam> is there a good book you guys would recommend?
<SGautam> I feel like I need to do some reading before writing code.
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<heat> what are you doing?
<Ermine> There's a link in channel topic
<SGautam> heat: Writing a torrent library from scratch as a hobby project
<heat> you don't need any of that then
<heat> i'm not familiar with the torrent protocol but i know it won't involve writing your own TCP/IP stack ;)
<Ermine> What you need is how to do networking in your operating system (in Unix case, this is sockets)
<SGautam> yah, but every P2P paper I come across always ends up using all sorts of terminology like DHCP, TCP/IP, uPnP, etc. etc. and I feel like I need to have a fair bit of background in networking theory
elastic_dog has joined #osdev
<heat> probably not
<heat> none of that shit actually matters
<heat> for torrents
<SGautam> I think torrents use some kind of uPnP for port forwarding
<SGautam> Although they can manage w/out it as well.
<Ermine> Find bittorrent spec and read whay you need to do
<Ermine> Meanwhile, that piece of shit finally exited boot services!!!
<bslsk05> ​www.bittorrent.org: bep_0003.rst_post
<heat> Ermine, what piece of shit?
<Ermine> efi hello world which gets memory map, exits boot services and stalls
<heat> poggers
<heat> we loadin onyx now?
<bl4ckb0ne> Ermine: the secret ingredient is never calling exitbootservices
<Ermine> Not so fast
<Ermine> bl4ckb0ne: iirc I wanted to test something
<sham1> I thought that the secret ingredient was crime
<Ermine> what if there were automatic style converters, like WindowsyCamelCase -> fine_snake_case
<moon-child> that sounds like a terrible idea
<moon-child> in the case of efi, names aren't really part of the spec, so you can use whatever names you want. Eg cefi uses snake case
<heat> when in rome do as the romans do
<Ermine> I copypasted stuff from spec and I don't like their style
<heat> tough shit
<Ermine> fuchsia headers use their own style
<Ermine> But you have a point
<heat> rewriting everything to use unix_hacker_style is silly
<Ermine> Probably
<Ermine> i like this style because i don't like pressing shift button
<heat> docs use camel case, spec uses camel case, examples use camel case, the code usually uses camel case
<heat> my underscore is also behind a shift button so it makes no difference to me :P
<gog> snake casing
<gog> snake casing
<gog> snake_case_best_case
<Ermine> Well well okay
* moon-child chomps-on-kebab
<gog> iUseCamelCaseAtWorkThough
<heat> _ is stupid
<gog> shut up heat
<Ermine> yeah
<heat> true hackers do shit like namei()
<heat> resolvep
<sham1> PascalCaseForTypes, camelCaseForMethods
<gog> true hackers know the offset of their sub routines
<heat> lookuppn
<gog> and call them by that
<heat> do you know what lookuppn is gog?
<gog> i don't
<heat> you know why?
<gog> no
<heat> because you didn't try man 9 lookuppn
<moon-child> lookup penis norway
<heat> now you're going to try that, it's going to fail and you're going to realize that 1) no one uses man(9) anymore 2) no one uses direct UNIX descendents anymore
<sham1> It'd only be norway if it was no
<heat> 3) lookup penis nepal
<sham1> lookuppno
<sham1> On that note, fuck YAML
<sham1> It's terrible
<gog> i don't care what lookuppn is
<heat> gog do you know what swapper is?
<moon-child> do NOT fuck yaml
<gog> do you
<heat> you don't? no shit, it swaps!
<heat> just kidding, it doesn't swap
<heat> get pranked by UNIX bro haha
<moon-child> swapper? I hardly know 'er!
<sham1> moon-child: oh yeah, YAML might have an STD. Forgot
<gog> hhhhhhhhhhhhhhhhh
<sham1> But yeah, it's the worst thing
<gog> Y'All Motherfuckers Lying
<moon-child> the bad jokes will continue until morale improves
<heat> y'all
<heat> gog cowgirl
<heat> yeeeeeeeeehaw
<gog> i do say howdy from time to time
<heat> gosh darnit fellas
<gog> dang i need a cowgirl outfit now
<sham1> gosh
<moon-child> aw heck
<bl4ckb0ne> sham1: secret ingredient is always crime
<bl4ckb0ne> but there can be more than one
<sham1> Okay good
<sham1> Crisis averted
<geist> Ermine: what fuchsia headers are you looking at?
<Ermine> bl4ckb0ne: from which place should I start reading i915 code
ajunior has joined #osdev
<bl4ckb0ne> yes
<gog> be crime do gay
<bslsk05> ​git.sr.ht: ~sircmpwn/hboot: include/efi/system-table.h - sourcehut git
<geist> ah yeah
<Ermine> I guess those are taken from fuchsia
<geist> yeah probably so
<heat> fwiw Ermine i took their headers and EFI'd them
<gog> efi_table_header
<gog> snake case efi
<gog> the case for snake efi
<heat> gog it's worse than that
<heat> efi_guid VendorGuid;
<heat> } efi_configuration_table;
<heat> the case for snake efi: a video essay
<heat> (talks about EFI, the garden of eden, richard stallman and 19th century imperialism)
<sham1> So the actual value is PascalCase for some reason
<sham1> Don't you just hate it when Richard Stallman caused 19th century imperialism
<sham1> But yeah, video essays are meandering and it's annoying
<sham1> I also just hate the word. How pretentious do you have to be that you call your video an essay
<geist> hmm, that i dunno. i'm a little surprised it mixes there
<geist> but then that may have been massaged by sircmpwn
<heat> PedroPascalCase
<gog> the UEFI SPecification or as i like to call it The Manual of Knowledge of Good and Evil
<bslsk05> ​fuchsia.googlesource.com: zircon/kernel/lib/efi/include/efi/system-table.h - fuchsia - Git at Google
<sham1> But why is it like that
<Ermine> bl4ckb0ne: well I thought you knew that, sorry for bothering
<sham1> Mixing the styles just looks odd
<gog> different people working on it maybe
<heat> i'm having the hugest mandela effect moment
<geist> it's not consistently that way. my guess is someone added the later structs and used PascalCase because that's the style we're supposed to use
<geist> and the older structs are still snake cse
<geist> the efi stuff almost predates fuchsia, i think we wrote that extremely early
<heat> i remembered it all being snake case
<geist> ie, 2016
* gog sliters around
<sham1> It just looks like no one said anything during code review
<geist> well, or new things were written with the new case, and the old stuff wasn't refactor
<geist> most of the kernel has a huge mix of that too, for similar reasons
<geist> a new style was mandated because, but older code gets converted slowly as folks touch it
<sham1> And no one's touching the EFI code I assume
<geist> correct
<geist> the efi code is pretty much make it work, dont touch it. headers also touch a lot of things, so if you refactor a header you hae to go touch all the parts where it's used, etc
<geist> so it becomes more work for just pretty sake
<sham1> Fair enoughj
<geist> honeslty i mostly dislike the google style, but most folks just go with it because the point is to have a style, not really like it
<heat> the gang deals with dodgy efi implementations
<geist> heck snake vs pascal case is one of the biggest inconsistencies of the google style i've seen
<geist> it's all over the place
<heat> efi_status (*ReinstallProtocolInterface)(efi_handle hadle
<heat> hadle??? fucking hadle?
<heat> literally unusable, 0/10
<geist> hah, honestly i would hav ejust left off the hadle
<sham1> You can't handle it
<geist> but that's also i forget called out somewhere
aosync has joined #osdev
<moon-child> I still have yet to use a fancy c or c++ ide, because everything I've tried has completely crapped out, but possibly if you leave in the parameter name an ide can show it when calling
<moon-child> which seems like a valid reason for leaving it in
<geist> yeah, usually if it's intrinsically obvious what it is i'll leave it out, but you may be right
<heat> i like leaving params in
<heat> because of that
<heat> param names that is
<heat> actually clangd seems to be struggling on that for function pointers, huh
<sham1> Parameter names are as much a piece of the documentation as the function name or comments
<geist> yeah
<heat> https://i.imgur.com/n4SV8oX.png i have these inline hints enabled and i find them really useful
<bslsk05> ​i.imgur.com <no title>
<heat> although sometimes confusing when it comes to line length, but usually i have clang-format enabled so that's no biggie
<sham1> I don't know what I'd do without clang-format
<geist> format your code?
<sham1> Format manually? Like cave people?
<heat> manually???
<heat> preposterous
<geist> yeah, like everyone before you that had toiled in the cave mines
<sham1> I'd at least want indent(1)
<geist> back in my day!
<heat> omg GNU indent haha
<sham1> GNU indent, BSD indent. Either way
<Ermine> netbsd still has a file for it
<dh`> which is probably wrong
<sham1> At least you can have a config file for indent(1) so you could be fairly sure that it indents it properly regardless of the system
<dh`> iirc the last time someone looked at indent it was all busted
<Ermine> that said, one guy tried to push all changes needed to clang-format during some gsoc
<sham1> Yeah, sadly kernel normal form isn't usable with clang-format
<dh`> having used clang-format on one project, I really don't like it
<geist> fwiw i've found astyle to be fairly useful
<geist> somewhat more configurable with switches
<dh`> autoformatting defeats the purpose of having formatting, which is to increase readability
<Ermine> Maybe go's idea of enforcing style with gofmt is good
<sham1> Meanwhile in Java: "Take this XML dump from Eclipse settings" and apply to burn area
<geist> somewhat agreed, but really the point of formatting is not to increase readability, from what i discovered
<geist> it's to put everyone on the same page
<sham1> Well autoformatting is about putting everyone in the same page
<geist> thats my long realization and what i had to eventually settle with at work, because google is so fixated on stuff like this
<dh`> there's a tradeoff between uniformity and expressivity
<sham1> Formatting is about readability. The machine doesn't care if you put all your tokens in one line
<geist> i dont like it, but it *does* at least make arguing about it moot
<geist> which i ... guess is useful
<dh`> and autoformatting caters to the people who think it is only about uniformity
<geist> correct. and at least at work, that's exactly what it is all about
<geist> because clang format trashes expressions badly when it gets too long
<geist> and i hate it, but it is what it is
<Ermine> some formatting guidelines are useful on their own
<sham1> Uniform formatting makes for more cohesive codebase
<dh`> like, people I have run into who think that if you change your project's style guide you must immediately go massedit all 200000 lines of code or whatever to conform
<Ermine> like not doing lines more than 80 chars long
<sham1> Although some debates are just silly
* sham1 glares at tabs v spaces
<heat> i find clang-format to sometimes be annoying but many more times to be incredibly useful and effective
<geist> yup, we did it for fuchsia early on, so i at least jumped in line to to the 200k line format myself, so all the line changes go back to me :)
<dh`> and who apparently bluescreen if faced with style rules like "don't change the indent width of files"
<sham1> Clearly the correct option is the vertical tab
<geist> agreed but also a battle i lost
<geist> and eventually just settled on, if you hate tabs so much, then enjoy my 4 space indents, and if you dont like that? your fault for bitching about tabs
vinc has quit [Read error: Connection reset by peer]
<sham1> I should probably just gist my .clang-format for my personal C stuff so I don't need to type it out every time
<dh`> I occasionally get complaints about mixed tabs and spaces in the os161 tree and I always respond with "hard tabs are 8 spaces wide, fix your editor"
<geist> that happened a bunch with early LK code where people were constantly bitching at me for using tabs
<geist> i kept telling them that it was better, etc
<geist> but i eventually just gave up and mass reformatted as 4 space indents
<geist> and then at least a smaller set of people bitch about 4 spaces than tabs
<dh`> and sometimes I get pushback along the lines of "if you strictly use tabs you can change the size to suit your personal preference"
<sham1> Tabs for indent, spaces for alignment. When you do that, it doesn't matter how wide a tab is. Hell, it could even be the size of a space
<geist> but i dont really care now, because my editor can deal with either
<dh`> except it doesn't actually work
<geist> that was really my experience
<geist> it's fine for indents but the alignment thing falls apart over time
<geist> OTOH, stuff like clang-format just kills whatever alignment you do at the end of the line anyway, so <shrug>
<dh`> it doesn't even work for indents unless you're very careful
<sham1> Although alignment is a sore point. For example, if you need to split an argument list over multiple lines, how does one align. To the right? Ew, no
<geist> right so for personal stuff over the long term i settled on spaces as the only way to make it look like what i want
<dh`> I have also settled on three spaces as the best size and that doesn't interact well with hard tabs
<heat> why should i care about any of this when i can ctrl+s trigger clang-format and have it look kinda like i want to 96% of the time?
<geist> but yeah i dislike a lot of code that mixes the two. a long time ago i set up my .vimrc to show tabs as a > character
<geist> so i can see when they're mixed and it really really sticks out
<dh`> because anywhere you've formatted things carefully to not be confusing clang-format will erase your work
<geist> heat: sure. if you're comfortable with that then that seems like a good solution
<heat> my biggest painpoint with clang-format is macros, because it really doesn't handle macros all that well
<geist> it's mandated at work by gerrit nowadays so it's moot there
<heat> c++ macros bad and all that
<dh`> for work I set my emacs config to never write hard tabs (because ghc gets really angry if you let it) ... and this causes it to be unable to write makefiles correctly
<geist> hah yeah i end up having to copy a tab from somewhere else
<dh`> clang-format also has all kinds of exciting bugs, like it will sometimes reflow comments in really strange ways
<geist> and then keep duping a line with a tab in it to edit
<dh`> which means if your project endorses it you all have to use the exact same version and then when your distro has a different clang you have a problem
<geist> what we do have at work that's kinda neat is our script that locally runs clang-format and the one in gerrit only runs it on lines that you modified in the CL
<geist> so at least you dont get nailed with needing to reformat the entire file becaus eyou touched one line in it
<geist> and that works fairly well in practice, since pretty much all the files are already basically formatted
<geist> but mabe a few stragglers here and there
<geist> there's a way to invoke clang format with a list of lines to consider
<dh`> not to mention that if you always reflow comments before committing it routinely creates tons of extra changes that make the diffs unreadable
<sham1> You can turn clang-format off for sections of code fwiw
<geist> yeah for headers where some long table of things is there i frequently turn it off
<dh`> like, you fix a typo like reename -> rename and it insists on repacking the line to
<dh`> s/to//
<sham1> So if you have an array for example with carefully typed things where being next to each other is significant, you can tell it to sod off
<sham1> See: OpenGL context studf5
<dh`> anyway I've found autoformatting to be a significant headache and in the course of using it I don't think it ever detected a single mistake or solved any real problem
<sham1> Well emacs' cc-mode also is technically an autoformatter
<geist> it's 100% social problems, it should never solve a technical issue
<dh`> cc-mode is only advisory
<dh`> though it's gotten a lot more aggressive over the years
<dh`> in principle if you write something like if (foo); {
<dh`> oops();
<dh`> }
<dh`> the autoformatter should catch it
<dh`> but that doesn't actually happen in practice
<geist> i dunno, i wouldn't consider that an autoformatter's job
<geist> that's more of a lint/warning/etc compiler thing
<dh`> it's about the only useful thing an autoformatter can actually do
<dh`> oh, IIRC clang-format in particular also doesn't fix mistakes like char* foo
<geist> clang-format *explicitly* says it doesn't dot hat and thats not its job
<geist> it only adds and removes whitespace
<dh`> and I'm aware that's doubtless because there's a sizeable community of people who think that isn't a mistak
<dh`> e
<dh`> that is whitespace!
<geist> hmm?
<dh`> char* foo vs. char *foo
<geist> oh that, yep. well, that ship sailed a long time ago
<dh`> it's still wrong!
<dh`> oldmanyellsatsky.jpg
<geist> that i made peace with
<dh`> I have not, it's wrong for the horizontal groupings to not match the syntax
<geist> that's a cloud i have ceased to be angry with, and i still write it the char *foo way, and clang-format 'fixes' it to conform to the style guide
CaCode has quit [Quit: Leaving]
<geist> so in that case it does the job for me: means i dont have to personally type in the incorrect way, i let the computer do it for me
<dh`> and the reason it matters is when people write char* foo, bar
<dh`> and that does happen
<geist> i 100% understand, but our style guide says do it the wrong way
<geist> and now i at least dont have to type it that way
<dh`> sigh.
<geist> OTOH we also generally dont like multiple var declarations like that, which tends to avoid the problem
<geist> or only in very trivial cases like int x, y;
<sham1> You can tell clang-format to fix char* foo into char *foo
<dh`> yes, that's one of the consequences, people become supertitious about declaring multiple vars because sometimes it doesn't work and they don't understand why
<geist> sham1: we do, we have it set to fix it to the left, because that's what our style guide says
<heat> dh`, clang-format fixes * alignment
<dh`> er, superstitious
<geist> but yes that's an option, i think it understands 3 modes: left, right, and whatever the file seems to use. the latter is some sort of fuzzy logic
<dh`> hmm, I remember it not, must be confusing it with some other peeve
<heat> no middle??? smh
<sham1> That's just wrong
<heat> char * foo;
<geist> i think it defaults to fuzzy logic, which is maybe why you didn't see it change it
<heat> it's lawful neutral
<bl4ckb0ne> what do you want to do with hboot Ermine
<sham1> At least putting the star at the type is meaningful even though it's wrong
<dh`> (how do people who like to do it wrong write function pointers? char(* foo)()?
<geist> i think no space there
<sham1> Probably
<geist> `char (*foo)()` i think
<sham1> And if one puts it in the middle, char ( * foo)()
<dh`> or maybe they just can't read/understand the syntax
<dh`> oops
<dh`> )
<sham1> Consistent to a fault
<heat> middle is perfect
<heat> left sucks
<heat> right also sucks
<heat> one must not be too extreme
<sham1> heat: do you dereference by doing * ptr
<heat> obv
<geist> but like i was saying before, *this* is actually where a autoformatter like clang-format is kinda nice. if your organization/project/etc has rules that you dont like but must abide by, let the formatter do it for you
<geist> you can still write code in your native style, and just have the formatter fuck up your code before you commit it
<geist> not ideal, but at least you dont have to do it
<sham1> Well at least it's consistent. Declaration follows usage
<geist> that's the silver lining as far as i'm concerned
<Ermine> bl4ckb0ne: nothing, I just pointed at its efi headers
<dh`> the project that was enforcing clang-format also hadn't caught up to reality on braces for single-line blocks and clang-format doesn't fix that up
<sham1> geist: I assume that Google also mandates int& foo
<geist> sham1: yes
<geist> i still type it the other way, but clang format fixes it
<heat> i do int& foo but int *foo
<heat> shoot me
<dh`> ...
<sham1> I also write references like pointers, because they have the same issues when you declare multiple in the same line
<sham1> Well, whenever I program in C++ which is once in a blue moon
<heat> im pretty sure int& is the canonical way to write references
<heat> vs int *
<dh`> so is char* in C++-land
<dh`> I have no idea why
<sham1> But when in Rome, int* foo
<dh`> it still doesn't match the syntax
<sham1> And thus int& bar
<sham1> And int&& baz
<heat> int&&& foobar
<sham1> Don't give the C++ committee any more ideas
<heat> &&& works
<geist> i remember internally on some google mailing list Rob Pike wrote some long rant about the whole pointer alignment thing
<geist> pretty good, but alas.
<heat> not syntactically but you can copies of lvalues and shit AFAIK
<sham1> Of course. I don't agree with Mr. Like on many things but he has a relatively nice C style
<heat> mr like
<sham1> Pike
<sham1> Why was that autocorrected, I have no idea
<heat> knob like and ryan bernieghan
goliath has quit [Quit: SIGSEGV]
<geist> yeah met him once, he's an interestig guy
<sham1> Doesn't use syntax highlighting
<sham1> Although who am I to judge. I program in a monospaced Comic Sans
<bl4ckb0ne> Ermine: those are nice headers, I like them
<bl4ckb0ne> no gnu crap
<heat> rob is younger but a few weeks ago i realized that we're not that far away from having all the UNIX oldies die off
<mcrod> hi
<heat> and hence lose heaps of knowledge and history
<sham1> We already lost Ken
<heat> no?
<heat> we lost dennis
<sham1> Err, Richie
<sham1> Yes
<sham1> Got my Bell Labs employees mixed up
<sham1> Ken is still going
<bl4ckb0ne> he has big kenergy
<bl4ckb0ne> dmr did non
<mcrod> eventually unix will die too
<mcrod> and on that day I will cheer
<sham1> I suppose that the heat death of the universe is as good a time as any
<heat> mcrod, fuck you
<mcrod> heat: fuck you too
<sham1> Get a room
<heat> 8=====D fuck you mcrod
<mcrod> yum
<sham1> dnf
<dh`> I don't use or like syntax highlighting
<mcrod> now i know we're definitely talking about the old days.
<dh`> the other day I was writing some python in an emacs instance I hadn't configured it all off yet
<dh`> and the syntax highlighting it does for python is really weird
<dh`> like words change color arbitrarily with no obvious pattern
<dh`> super distracting and not the slightest bit helpful
<dh`> neither does angry fruit salad increase readability
<heat> "He was running introductory computer laboratory exercises for students and instructed the course attendees to send him an e-mail as a test, to which Tove responded with an e-mail asking for a date"
<heat> holy cow linus has so much rizz
<heat> he's rizzed up
LostFrog has quit [Read error: Connection reset by peer]
PapaFrog has joined #osdev
xelxebar has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
<mcrod> heat: i'm at O&S
<mcrod> fuck you
<mjg> opearing & systems?
<mjg> what kind of name is that
[itchyjunk] has quit [Ping timeout: 245 seconds]
psykose has joined #osdev
<mcrod> no
<mcrod> ornstein and smough
<mcrod> also known as the two biggest fucking assholes i've ever seen in DS1 so far
Turn_Left has joined #osdev
<mcrod> how the fuck am I supposed to beat these guys
<psykose> with skill
wblue has joined #osdev
<Ermine> so heat, onyx kernal is multiboot2 right?
Left_Turn has quit [Ping timeout: 260 seconds]
<heat> Ermine yas
<heat> mcrod separate the bastards
andydude has joined #osdev
<mcrod> i am
<mcrod> but then ornstein fucking teleports
duderonomy has quit [Ping timeout: 244 seconds]
<mcrod> you know what's slightly annoying, unrelated to dark souls
<mcrod> it seems that you absolutely cannot use directx from C without some massive pain
<psykose> that still sounds like dark souls
<mcrod> directx boss fight?
[itchyjunk] has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
[itchyjunk] has joined #osdev
Burgundy has quit [Ping timeout: 264 seconds]
<bl4ckb0ne> hi psykose
<bl4ckb0ne> can i pat you
<psykose> don't you already have kids to pat
<bl4ckb0ne> yes but i have lots of pats available to share