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
vai has joined #osdev
<vai> hey
<heat> hi
Gooberpatrol_66 has quit [Quit: Konversation terminated!]
Gooberpatrol_66 has joined #osdev
heat has quit [Quit: Client closed]
Turn_Left has quit [Ping timeout: 246 seconds]
levitating_ has joined #osdev
gog has quit [Ping timeout: 272 seconds]
skipwich has quit [Remote host closed the connection]
Gooberpatrol66 has joined #osdev
Gooberpatrol_66 has quit [Ping timeout: 260 seconds]
qubasa has joined #osdev
levitating_ has quit [Quit: Leaving]
voidah has joined #osdev
skipwich has joined #osdev
CompanionCube has quit [Quit: ZNC - http://znc.in]
Stary has quit [Quit: ZNC - http://znc.in]
Stary has joined #osdev
CompanionCube has joined #osdev
vdamewood has joined #osdev
hwpplayer1 has joined #osdev
Gooberpatrol66 has quit [Quit: Konversation terminated!]
Gooberpatrol66 has joined #osdev
Arthuria has quit [Ping timeout: 276 seconds]
Ellenor is now known as MelanieUrsidino
voidah has quit [Ping timeout: 272 seconds]
GeDaMo has joined #osdev
karenw has quit [Ping timeout: 246 seconds]
craigo has quit [Quit: Leaving]
Gooberpatrol_66 has joined #osdev
Gooberpatrol66 has quit [Ping timeout: 246 seconds]
MiningMarsh has quit [Quit: ZNC 1.9.1 - https://znc.in]
MiningMarsh has joined #osdev
levitating_ has joined #osdev
hwpplayer1 has quit [Quit: I'll be back later]
<kof673> > omg I want to pay for fake real estate just to demonstrate conway's law...meta all the way down.......territory, 1856: in the sense it is used in the constitution of the United States, it signifies a portion of the country subject to and belonging to the United States, which is not within the boundary of any of them
<kof673> then you will have to cross-reference american jurisprudence, black's law dictionary "federal citizen" to see what the 14th claims lol
hwpplayer1 has joined #osdev
<the_oz> control the namespaces
<the_oz> I'll just "travel" to that "territories of the"
<the_oz> Free man on the land, SHIP my shi- ACK Y U TAZE ME BRO
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
mavhq has joined #osdev
mavhq has quit [Client Quit]
levitating_ has quit [Remote host closed the connection]
levitating has joined #osdev
mavhq has joined #osdev
hwpplayer1 has quit [Remote host closed the connection]
mavhq has quit [Remote host closed the connection]
mavhq has joined #osdev
mavhq has quit [Ping timeout: 252 seconds]
mavhq has joined #osdev
levitating has quit [Ping timeout: 272 seconds]
netbsduser has joined #osdev
orayn has joined #osdev
smeso has left #osdev [#osdev]
smeso has joined #osdev
<kof673> the_oz, "the body of a free man does not admit of valuation" first you need some non-federal citizen ID which does not exist at present lol
smeso has left #osdev [#osdev]
<kof673> this is not the place, the point is you cannot obtain real estate in an actual state, federal territory all, officially
gog has joined #osdev
goliath has joined #osdev
flom84 has joined #osdev
flom84 has quit [Client Quit]
<kof673> other way around, if you wanted the old 1850-ish system, you would want to avoid the federal territory lol
<orayn> is zig a good choice to make an operating system or better stick with C ?
<kof673> not sure i seen anyone say they are using it for that, but IIRC the author used to appear here a long time ago
<kof673> i recall when they did that, i don't know what the final requirements are, but i personally would prefer something easy to bootstrap https://ziglang.org/news/goodbye-cpp/ > Thus, instead of 80,000 lines of C++, there are now 4,000 of portable C. This code only uses standard libc functions, and does not depend on any POSIX headers or windows.h
<bslsk05> ​ziglang.org: Goodbye to the C++ Implementation of Zig ⚡ Zig Programming Language
<orayn> ooo that's interesting tbh, I hate cpp anyways hahaha
<orayn> thanks for sharing bslsk05
* Ermine trains memory
<kof673> bslsk05 is just the url bot. well there are other wasm to c89, that one is slimmed down, is how i found it :D
<bslsk05> ​turbolent/w2c2 - Translates WebAssembly modules to portable C (37 forks/705 stargazers/MIT)
<kof673> so other projects could do this too, make a wasm "binary blob" and leave it to whatever platform how to run it
<kof673> the zig version i believe is just bare minimum so it can bootstrap
<kof673> and not related to w2c2
<orayn> hhhh didn't know was a bot
<orayn> I see I look more into it thank you
<kof673> i'm not saying do that, just i look at what dependencies are needed for anything i want to require to build
<kof673> that is separate from the language itself, maybe ask a zig channel, have not seen anyone here :D
<kof673> probably does not matter for most people, unless they aim to be self-hosting
orayn has quit [Ping timeout: 256 seconds]
orayn has joined #osdev
<orayn> sorry disconnected, I'll check the zig channel thanks
heat has joined #osdev
obrien has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
heat_ has quit [Read error: Connection reset by peer]
FreeFull has quit [Quit: rebooting]
hwpplayer1 has joined #osdev
X-Scale has joined #osdev
FreeFull has joined #osdev
vdamewood has quit [Quit: Life beckons]
X-Scale has quit [Ping timeout: 256 seconds]
X-Scale has joined #osdev
X-Scale has quit [Ping timeout: 256 seconds]
xenos1984 has quit [Read error: Connection reset by peer]
orayn has quit [Ping timeout: 256 seconds]
<the_oz> kof673, yeah it used to take an act of congress. Good luck with that nowadays.
xenos1984 has joined #osdev
<kof673> bingo. when did any state ever cede <everything> lol
<kof673> i am done with offtopic, just a fake real estate joke lol
youcai has quit [Read error: Connection reset by peer]
youcai has joined #osdev
nur has joined #osdev
MiningMarsh has quit [Ping timeout: 276 seconds]
MiningMarsh has joined #osdev
Arthuria has joined #osdev
jimbzy has joined #osdev
levitating has joined #osdev
craigo has joined #osdev
DanielNechtan is now known as bombuzal
levitating_ has joined #osdev
levitating has quit [Read error: Connection reset by peer]
xenos1984 has quit [Ping timeout: 248 seconds]
xenos1984 has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
xenos1984 has quit [Ping timeout: 248 seconds]
levitating_ is now known as levitating
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
heat_ is now known as heat
andydude has joined #osdev
Arthuria has quit [Ping timeout: 272 seconds]
Arthuria has joined #osdev
urandom__ has joined #osdev
urandom__ has quit [Remote host closed the connection]
urandom__ has joined #osdev
urandom___ has joined #osdev
urandom__ has quit [Remote host closed the connection]
urandom___ has quit [Remote host closed the connection]
urandom__ has joined #osdev
cookedpotato has joined #osdev
heat_ has joined #osdev
heat has quit [Ping timeout: 246 seconds]
heat_ is now known as heat
gioyik has joined #osdev
gildasio has quit [Ping timeout: 260 seconds]
<immibis> one of those knowledge graphs powers YouTube recommendations
obrien has quit [Remote host closed the connection]
Left_Turn has joined #osdev
gog is now known as pog
<levitating> poggers
guideX_ has joined #osdev
guideX has quit [Killed (NickServ (GHOST command used by guideX_))]
guideX_ is now known as guideX
voidah has joined #osdev
<immibis> the poggles do nothing
<heat> pog
<heat> if anyone ever wondered how networking people test their changes: they don't
orayn has joined #osdev
<jimbzy> Testing is for the weak. Just send it.
gildasio has joined #osdev
<pog> i test in production on unwitting subjects
<pog> in all seriousness the amount of testing i have to do in exchange for how little it actually affects the number of defects produced is a waste
<pog> and i'm having a hard time being motivated to actually add features
<pog> and idk what to do about it. i don't want to continue like this
<Ermine> heat: not surprised
* Ermine gives pog a piece of cheese
* pog fascinated
<jimbzy> pog, I was thinking about you at work on Friday. We're upgrading Coca-Cola FreeStyle machines with a new main board that uses a Raspberry Pi, and I was wondering if I could replace the splash screen with a certain chef eating a sausage. XD
<pog> do it do it
<pog> sosig
<jimbzy> I'll try it if I can get my hands on a complete, working "blister" as we call it.
<heat> Ermine, mildly concerning given the linux network stack is around 170KLOC just in the tcpip bits
<heat> but alas almost no tests to speak of
<heat> there's this google thing called packetdrill which looks cool but is definitely super incomplete
<heat> i guess this is helped by RFCs not really being a spec so lol just implement it dumbass
Gooberpatrol_66 has quit [Quit: Konversation terminated!]
Gooberpatrol_66 has joined #osdev
<Ermine> horrid
<Ermine> But I now know whom to blame the next time my wifi fails
<heat> half the kernel selftests in linux master atm do not even compile
<heat> no one takes testing seriously :(
<Ermine> O_o
<heat> ok maybe half was an overstatement but there's a solid number that do not build
<Ermine> one of the reasons why linux desktop is linux desktop
<nikolar> i don't think linux desktop is affected by those tests much
<nikolar> considering that 90% of servers run linux
<heat> actually linux desktop changes are pretty well tested i think?
<heat> mesa at least seems to have good testing
<nikolar> no clue
<heat> testing audio is probably tough, compositors too
<Ermine> luckily mesa has a large test suite
<nikolar> indeed
<zid> My compiler comes with a huge test suite
<zid> called types
<zid> webdevs should try it
<zid> nikolar: Screenshot when?
<Ermine> c varargs join the chat
<zid> Ermine: __attribute__((printf))
<zid> there, now it's type checked
<nikolar> zid: screenshot of what
<zid> nikolar: PLC WC
<nikolar> oh lol i forgor it says the country you're playing
<Ermine> ah yeah, I definitely want to write yet another string formatter
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
<Ermine> musl printf was not enough
<zid> why are you using so much varargs that it's a significant problem that it isn't type checked then
<zid> enough to say C's no good
<nikolar> honestly i've never felt the need for varargs other than printf
<zid> yea same
<Ermine> Luckily I don't have a use case for them. But they single-handledly break the type system
<zid> That attribute covers 99.99% of my uses of varargs
<nikolar> so don't use them
<zid> They don't break it, there just isn't absolutely full coverage
<nikolar> it's not exactly a killer feature
<Ermine> also
<zid> unlike a web language, that has 0 coverage
<nikolar> kek
<kof673> i could be wrong, but the amazing new c89 gives stdarg.h instead of vararg
<Ermine> that attribute basically enables static analysis, and this is not a type system
<kof673> and k&r just_do_that()
<zid> gotta love it when you can log in with any blank password because php thought the SHA1 hash of the password starting "0E3.." meant '0 thousands' and compared equal to null
<heat> ioctl and fcntl are both varargs functions
<heat> and open!
<zid> I was about to say "and yet, I've never seen that bug in C", but I totally have
<zid> nintendo did it on the wii
<nikolar> heat: i was referring to the kinds of functions i'd write
<zid> they strcmp'd a hash instead of memcmp'd it, so you had a 1/256 chance of having the hash start 0x00 and always compare equal
<heat> i think using is the hard part
<heat> i've gotten open(O_CREAT) without a mode wrong a non-zero amount of times
<heat> doesn't even crash, just gives you junk :/
<zid> nikolar: where pic
<zid> bad syscalls should 100% cause an abort
<Ermine> skarnet hates that so much so he made wrappers, open2 and open3
<heat> how about openat and openat2 :v
<zid> See, people love their type checking enough to have done that
<Ermine> idr
<nikolar> yeah i have no clue why open is a vararg function
<zid> cus some people are silly
<zid> not everybody, but some
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
<nikolar> that's not wrong
<rbox> because mode isn't always needed
<heat_> linux mremap has a fun gotcha where there's a variadic argument that's not used unless a flag is set, but they silently switched the behavior so it's also consumed if another flag is set
<heat_> ... but they didnt document this in the man page
<heat_> it's very possible it gets garbage that's just rejected by the kernel :v
heat_ is now known as heat
Gooberpatrol_66 has quit [Ping timeout: 246 seconds]
Turn_Left has joined #osdev
Gooberpatrol_66 has joined #osdev
<nikolar> rbox: then have open and open3
<rbox> mremap shows the variadic here
<heat> please just open and open2, or openex, or whatever
<heat> number meaning nr of args is silly
<Ermine> OpenEx
<rbox> EXTREME open?
<nikolar> heat: sure, someone just mentioned open3 earlier
<heat> between wait, wait3, wait4, waitpid, waitid i would rather fucking die
<heat> nikolar, yo show me dat PLC too
Left_Turn has quit [Ping timeout: 260 seconds]
<Ermine> read, write, readv, writev, recv, send, recvfrom, sendto, recvmsg, sendmsg
<nortti> pread, pwrite
<heat> preadv, pwritev, preadv2, pwritev2
<Ermine> I was sure I forgot something
<heat> you also forgot sendmmsg and recvmmsg
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 272 seconds]
<Ermine> forgor
<heat> 💀
<heat> OH: io_submit
<Ermine> oh, it's posix aio?
<heat> io_submit is linux aio (but actually asynchronous only sometimes)
<heat> aio_read and aio_write are POSIX's fake AIO using pthreads
<Ermine> oh holy crap
Turn_Left has joined #osdev
<Ermine> I was adviced against using posix aio. It's a wise advice
<heat> and then you have io uring and mmap and splice and vmsplice and sendfile
<heat> TL;DR io is pain
<heat> and i'm sure i'll remember something else in 15 minutes
Left_Turn has quit [Ping timeout: 276 seconds]
valshaped7424880 has quit [Quit: Gone]
valshaped7424880 has joined #osdev
gioyik has quit [Quit: WeeChat 4.4.1]
<immibis> there's really no good way to keep abi stability when you add more arguments. windows probably has the best way, with all its structs with cbSize, but it's incredibly verbose.
<nikolar> immibis: there is
<nikolar> it's called new functions
<immibis> also not good because now you have duplicate functions
<zid> they're not duplicate
<immibis> i think linux names the extended functions after the number of arguments, not the number of times the function has evolved. It's better than windows's Ex, Ex2 convention.
<zid> they're just very similar
<zid> and tbh take up what, 20 bytes
<heat> no, linux names them after the times, except when it doesn't
<nikolar> how are they duplicate if they have more arguments
<heat> but it generally does
<zid> (granted it's 20 bytes in like, 20000 places on your drive)
<immibis> open is a subset of openat; openat is a subset of openat2, which I note, uses a cbSize.
<zid> that that's what, one fried egg jpeg
<immibis> redundant stuff is a maintenance burden
<nikolar> os use open when you don't need the openat functionality
<immibis> even though glibc forwards open to openat, the kernel still supports both open and openat
<zid> the extreme maint of #define open3(a, b, c) syscall(3, a, b, c)
<immibis> if there are subtle differences between the kernel's open function and glibc's open function, expect hours of debugging
<zid> BURDEN IS CRUSHING
<heat> nope, SYS_open is no longer present in new architectures
<immibis> how quickly would you identify why this "identical system call" open(blah, blah) works on glibc but not on musl
<immibis> oh well that's a slight improvement - of course, now the kernel has to deal with some system calls existing or not existing depending on the architecture
<heat> the libc, not the kernel
<nikolar> SYS_open does exist on x86_64 doesn't
<heat> the kernel just, uh, redirects one to the other anyway. should be no difference in codepaths
<nikolar> that's the one
<heat> yes, it stopped existing after IIRC around 2014
<heat> so arm64 does not have it
mavhq has joined #osdev
<immibis> "should be" is often where bugs come from
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
hwpplayer1 has quit [Remote host closed the connection]
andydude has quit [Quit: Leaving.]
Left_Turn has joined #osdev
goliath has quit [Quit: SIGSEGV]
Turn_Left has quit [Ping timeout: 246 seconds]
<pog> factorio is just like enterprise software development. you're always making a factory factory
<nikolar> kek
<heat> facade
<Ermine> impl
<the_oz> factorissimo
<the_oz> making a factory in a factory with factories... space exploration, in SPACE!
<the_oz> pyanodonangelbobs
<Ermine> Also you make a class which serves as a superclass for all other classes
<Ermine> then you make a primordial factory to produce all objects
<Ermine> that's the amazing world of SOLID
orayn has quit [Quit: Client closed]
cookedpotato has quit [Ping timeout: 252 seconds]
<immibis> that sounds like the factorio with one assembling machine challenge
<bslsk05> ​www.youtube.com <no title>
<the_oz> doshdoshington
<the_oz> lets see who else is there... galdoc
<the_oz> martincitopants
<the_oz> abigiousamphibian
the_oz has quit [Ping timeout: 252 seconds]
memset has quit [Ping timeout: 260 seconds]
netbsduser has quit [Ping timeout: 272 seconds]
<immibis> https://www.youtube.com/watch?v=FD_xUxlw4yg <- I beat factorio with only a mouse
<bslsk05> ​www.youtube.com <no title>
agent3147 has joined #osdev
memset has joined #osdev
agent3147 has quit [Client Quit]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 244 seconds]
sly6 is now known as sly
the_oz has joined #osdev
Turn_Left has quit [Ping timeout: 248 seconds]