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
<klange> did my first github push since the key change
gog has joined #osdev
<klange> Exposing my path rasterizer directly in Kuroko: https://klange.dev/s/Screenshot%20from%202023-03-27%2009-22-20.png
<klange> I really need to sit down and write a proper stroke algorithm, this is just drawing boxes.
<klange> Boxes were good enough for the squiggles in the system monitor app's graphs, but not for any serious artistry.
<Mutabah> Neat
<Mutabah> (* Holy cow, you're whooping my osdev arse)
<Mutabah> Althoug... I'm knee-deep in FAT write support, so there's that?
<bnchs> i read your message at first as "I'm knee-deep in FAT
<bnchs> and wondering wtf were you talking about
<Mutabah> Well... it does require wading through the FAT
<bnchs> now i don't know if i should be doing your mom jokes
<sakasama> I wouldn't recommend it: she has a really bad sense of humor.
<zid> lemep and ziv both died in the past two months
<zid> lempel*
<zid> rip zip
<sakasama> Death shall come for us all eventually.
<gog> wow i should've switched to wayland a while ago
<nikolar> Oh that's sad
<zid> corporate shill detected smh
<nikolar> I was just implementing a lz77 compressor
<klange> Mutabah: if it makes you feel any better, I am suffering from the shittiness of my heap allocator at the moment as I watch virtual addresses skyrocket
<klange> It might finally be time to implement a proper mmap interface.
<Mutabah> I have no idea how bad my heap allocator is, I haven't tested it enough to be sure... but it's probably pretty bad
<zid> Bad is good, bad is reliable.
<zid> If it does not work, you can always work around it.
<zid> Fancy allocator get in way, ruin program
<klange> Mine is going on 13 years old - predates the OS. The old version was pretty good at keeping virtual addresses low, but had trouble with reallocing large allocations that made it fall down hard when I introduced things like non-lazy window resizing.
<klange> I "upgraded" it to unmap large allocations on free, which vastly reduced actual memory consumption, but it's too stupid to reuse those addresses on its own (it's built on sbrk!) so virtual addresses can climb rapidly now.
<klange> I wrote the thing for a uni systems course, and "must only use sbrk" was a requirement.
<klange> And it went through a little competition where it performed rather well on both time and space relative to glibc and my classmates at the time.
<klange> So when I went about that whole 'writing an OS' thing, I reused it first for the kernel heap allocator, and later for the userspace allocator - one of the first parts of newlib to be replaced by in-house code :)
<klange> Just need to replace the sbrks with the dumbest of mmap continuous page allocations and we'll be golden, since the allocator doesn't even rely on the continuity of sequential sbrk calls anyway.
<Mutabah> Random note: I'm having quite a bit of fun using rust's shared^mutable semantics for a filesystem API
<bslsk05> ​github.com: rust_os/handle.rs at master · thepowersgang/rust_os · GitHub
MarchHare has quit [Read error: Connection reset by peer]
<moon-child> strokes is super hard
<moon-child> not analytic; have to approximate with outlines
<moon-child> (or--analytic but not practically so)
gog has quit [Ping timeout: 248 seconds]
<klange> I read a paper once on convolution tracing(?) that was pretty neat and probably what I will do
<moon-child> convolution tracing?
<klange> It's by Keith Packard, so there must be some merit to it.
<FireFly> strokes being hard is something I found out the hard way ._.
* FireFly should read this paper
<klange> So a simple stroke is a Minkowski sum of the path and a 'pen' shape, and with a convolution approach you can generate a path describing an approximation of that minkowski sum, and viola, you got a stroke.
MarchHare has joined #osdev
<moon-child> thanks, I'll take a look
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
mavhq has joined #osdev
_xor has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
valshaped has quit [Quit: Gone]
valshaped has joined #osdev
Arthuria has quit [Remote host closed the connection]
crankslider has joined #osdev
crankslider has quit [Ping timeout: 276 seconds]
bradd has joined #osdev
<zid> I just did complicated mathematics to figure out how long ago C89 was
<zid> completely forgetting I was born in 1989, so I just have to know how old I am
<zid> computers are supposed to do advanced mathematicals for me, like adding up
<heat> oldie
<zid> I'll mill all your enials for you
heat has quit [Ping timeout: 248 seconds]
bgs has joined #osdev
<geist> Mutabah: at some point i'm going to have to pick your brain about some rust OO (or lack of OO) issues that i've been mulling over
crankslider has joined #osdev
sinvet has quit [Ping timeout: 255 seconds]
tuxifan has quit [*.net *.split]
jimbzy has quit [*.net *.split]
dayimproper has quit [*.net *.split]
Bonstra has quit [*.net *.split]
alexander has quit [*.net *.split]
randm has quit [*.net *.split]
divine has quit [*.net *.split]
brynet has quit [*.net *.split]
TkTech has quit [*.net *.split]
woky_ has quit [*.net *.split]
merry has quit [*.net *.split]
sauce has quit [*.net *.split]
tuxifan has joined #osdev
sauce has joined #osdev
brynet has joined #osdev
randm has joined #osdev
TkTech has joined #osdev
Bonstra has joined #osdev
merry has joined #osdev
woky has joined #osdev
alexander has joined #osdev
crankslider is now known as slidercrank
bgs has quit [Remote host closed the connection]
pmaz has joined #osdev
GeDaMo has joined #osdev
bnchs has quit [Read error: Connection reset by peer]
<nortti> oh, is that a new 2d shape renderer in kuroko?
dayimproper has joined #osdev
nyah has joined #osdev
sinvet has joined #osdev
EthicsGradient is now known as AttitudeAdjuster
Left_Turn has joined #osdev
slidercrank has quit [Remote host closed the connection]
slidercrank has joined #osdev
gog has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 265 seconds]
SGautam has joined #osdev
<netbsduser> i hate lock ordering
<netbsduser> by far the thing that demands some of the most attention in operating systems, i think
<moon-child> this is one argument in favour of lockfree data structures
<moon-child> you can have local reasoning
<netbsduser> no silver bullet
<netbsduser> currently i'm trying to define a locking protocol for an epoll implementation i am throwing together
<gog> meow
heat has joined #osdev
<froggey> just use one large lock, ez
* nikolar pets gog
* gog prr
<gog> i found something that i didn't break
<gog> yay
<gog> even though it's something i also worked on
<gog> yay
* gog throws her rig out the window
<gog> i fucking _hate_ our sales frontend
<gog> it's so bad
<gog> we just keep tacking shit on it and it gets more broken
<heat> have you considered switching frameworks?
<heat> just for the fun of it
<gog> no
<gog> it's in-house
<heat> i heard react sucks and angular is the best
<heat> SWITCH NOW
<gog> react isn't the thing here
AttitudeAdjuster has quit [Quit: WeeChat 3.7]
EthicsGradient has joined #osdev
EthicsGradient is now known as AttitudeAdjuster
<heat> i've been writing some js code for uni
<heat> the whole node ecosystem is depressingly scary
<GeDaMo> Just import things directly from Github! :P
jjuran_ has joined #osdev
alethkit is now known as nobody
nobody is now known as alethkit
nikolar has quit [Remote host closed the connection]
jjuran_ has quit [Remote host closed the connection]
jjuran_ has joined #osdev
AttitudeAdjuster has quit [Quit: WeeChat 3.7]
AttitudeAdjuster has joined #osdev
jjuran has quit [Ping timeout: 255 seconds]
jjuran_ is now known as jjuran
<gog> ok one more problem fixed
<gog> but one that also accumulates tech debt because it conflicts with one of my big proposals
<gog> yaaaaaay
<gog> i want to gut the whole thing and start from scratch but that would take months
<gog> i want to have a big refactor party but that would take weeks
<gog> boss doesn't want to feature freeze
<gog> this is going to crash and burn before long
<gog> we're on a bad path
pmaz has quit [Quit: Konversation terminated!]
nikolar has joined #osdev
<nikolar> It's horrific
gildasio has quit [Ping timeout: 255 seconds]
gildasio has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
<klange> nortti: not specifically; it's the path rasterizer I built for my truetype renderer.
<klange> nortti: the Kuroko bindings are new, but the focus here is the new stroke renderer; old one just turned line segments into boxes
<nortti> ah
bradd has quit [Ping timeout: 248 seconds]
danilogondolfo has joined #osdev
arminweigl has quit [Ping timeout: 248 seconds]
SGautam has quit [Quit: Connection closed for inactivity]
Turn_Left has quit [Ping timeout: 246 seconds]
arminweigl has joined #osdev
Turn_Left has joined #osdev
kspalaiologos has joined #osdev
<kof123> not to start an argument but: "to figure out how long ago C89 was " .... "vi was made for a world that doesnt exist anymore" .....my q would be does c89 world still exist or even be underpinnings many places, as the rustaceans might say
<kof123> (vi quote from bill joy)
<kof123> or: is it still having its influence, no matter how old it is
<kof123> there is "old in age" and "old as in no longer influencing things" -- i would say may or may not overlap
<heat> lots of stuff is either written in c89 or c89-style
<heat> large portions of linux are c89
<slidercrank> the kernel?
<slidercrank> it's built with -std=gnu11
<Ermine> some pieces are gnu11, but everything else...
<heat> it being GNU11 is relatively recent, and most of the kernel still builds and is written against C89
<heat> the whole "we switched to C11" thing is just a "you can now write new files in C11" instead of "you can now send patches rewriting everything to C11"
<heat> mainly because the 2nd option is not productive and in general maintainers want code that fits in with the surroundings
[itchyjunk] has joined #osdev
<slidercrank> they also added rust support :) so we're departing from c89
<gog> rust rust rust rust
<gog> i hate API integrations but i'm the integrations expert now
<gog> i am going to [parody redacted in minecraft] this fucking support agent
<zid> rustrustrust
<zid> I tried to write a rust program this weekend
<zid> I did not get very far
<gog> i'm trying to do my job but there's always some shit to fix that i already fixed
<zid> It needed me to understand what <(), E> meant
<zid> on line 1
<zid> so I gave up
<gog> pretty soon i'll be fixing those fixes to the fixes
<gog> and i'll be stuck in an endless loop of fixing the fixes that fix the fixes to the fixes
<gog> i need a vacation
<bslsk05> ​doc.rust-lang.org: exit in std::process - Rust
<zid> The fuck does *any* of that mean lol
<gog> i don't know zid
<gog> i don't know anything
theboringkid has joined #osdev
slidercrank has quit [Ping timeout: 276 seconds]
vdamewood has joined #osdev
vinleod has joined #osdev
vdamewood has quit [Killed (erbium.libera.chat (Nickname regained by services))]
vinleod is now known as vdamewood
<Ermine> gog: may I pet you
<gog> yes please
* Ermine pets gog
* gog prr
<sakasama> zid: This is because, delightfully, () is used as null for both types and values: so you have Result<()> accepting a value of Ok(()).
<zid> There's no such thing as a null type, you're pretending
<sakasama> I think you'll especially enjoy reading about that at https://doc.rust-lang.org/std/result/index.html
<bslsk05> ​doc.rust-lang.org: std::result - Rust
<zid> ah yes, another trivial example that only hits on the behavior I need to kow
<zid> and doesn't do things like &'static
<zid> or _
<zid> This is great as a reference for a language you already know
<sakasama> Honestly, async and unsafe behaviour is such a mess in rust that I only touch the language when someone else insists on tormenting me with it.
<sakasama> _ is just a placeholder in the prolog fashion.
<zid> Yes, because rust is here to replace prolog
<sakasama> It is! You didn't know that's deprecated too?
bgs has joined #osdev
theboringkid has quit [Quit: Bye]
bnchs has joined #osdev
xenos1984 has quit [Ping timeout: 248 seconds]
xenos1984 has joined #osdev
truepassion has quit [Read error: Connection reset by peer]
slidercrank has joined #osdev
dude12312414 has joined #osdev
xenos1984 has quit [Ping timeout: 246 seconds]
theboringkid has joined #osdev
theboringkid has quit [Client Quit]
gog has quit [Quit: Konversation terminated!]
xenos1984 has joined #osdev
kspalaiologos has quit [Quit: Leaving]
gog has joined #osdev
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
<heat> we do be writing them operating systems though
<gog> i don't be
<heat> then get to it
<mjg> more coding less shitting mofo
<gog> i can't
<heat> drop the full stack development and WRITE SYSTEM OF OPERATING
<gog> i have a family to feed
<mjg> if you wait long enough
<mjg> you wont have that problem
<heat> responsible gog is a bruh moment
<gog> gog is a very responsible
<heat> if you were a BSD developer you wouldn't have a family in the first place
<gog> lawl
<gog> rekt
<mjg> my wife's boyfriend thinks this is funny
<heat> lol!
<gog> hahahahahahahahahahahahahahahahahahah...
<zid> I do indeed
<lav> nya
danilogondolfo has quit [Remote host closed the connection]
danilogondolfo has joined #osdev
<bslsk05> ​lwn.net: The curious case of O_DIRECTORY|O_CREAT [LWN.net]
<heat> i'm famous now motherfuckers
<mjg> i was in the chatroom when you made the discovery
<mjg> i'll cherish that moment
<geist> oh woot
<mjg> the real q here is how come this was not caught sooner
<mjg> while i don't expect anyone to check if perhaps failed open created a file anyway
<mjg> i would expect something like LTP to test the above flags, and after all dust is settled, diff the filesystem against expected state
<mjg> ... which is where the breakage would have been found
<mjg> note there may be tons other funny problems, like *time or perms changing when not asked for
<heat> you're overrating LTP
<mjg> i clearly am
<mjg> want a funny story of testing from RED HAT
<heat> yes
<mjg> back in my day, and probably even today, there was *one* public facing bugzilla for internal and public stuff
<mjg> to make it worse, the default setting for all bugs created by employees was also public
<mjg> and by policy you had to click private by hand
<mjg> who knew, a poor fucking sap forgot to click it
<mjg> the following bugreport got public: internal testing shows that squid rpm does rm -rf /*
<mjg> someone found it and made a hackernews post
<mjg> public comments in the bz wre seriously pathethic
<mjg> and another poor fucking sap decided to extend the test suite
<mjg> for squid
<mjg> namely: you run the usual tests, then wait 30 minutes
<mjg> and then check if dirs like usr and etc are still there
<mjg> :d
<heat> lol
<heat> why 30 minutes?
<mjg> because retard
<bslsk05> ​bugzilla.redhat.com: 1202858 – [UNRELEASED] restarting testing build of squid results in deleting all files in hard-drive
<zid> pedro is a famous :o
<mjg> i see the retard idea is private
<mjg> well at least not visible now :d
<zid> rm -rf $SQUID_PIDFILE_DIR/*
<zid> is there a safer way to do that
<mjg> brah
<mjg> that was such a joke
<heat> :: [ PASS ] :: Waiting 30m (Expected 0, got 0)
<heat> :: [ PASS ] :: Directory /home should exist
<mjg> wait what
<mjg> :D
<mjg> fuck
<mjg> LOL
<mjg> i didn ot know that went through
<mjg> fucking retards holy shit
<mjg> i thought that was too stupid even for that workplace
<mjg> kurwa ich
<mjg> i guess i asked for it, digging up old dirt
<heat> here's a funny linux kernel bugzilla story
<heat> it's dead.
<heat> there it is, hope you laughed
* Ermine start chocking from laughter
gbowne1 has joined #osdev
<Ermine> choking, actually
<zid> oh I thought you did it to stop yourself rolling away
<zid> roflm'd off a cliff
<zid> learned from past mistakes
gdd has quit [Ping timeout: 252 seconds]
gdd has joined #osdev
<zid> 1 hour until honzuki, entertain me
<heat> ok boss
<bnchs> wtf, how the fuck does squid delete everything in the hard drive
<bnchs> does they run it as root?
<zid> You keep confusing me
<zid> for a zoomer
<zid> millenial memes are about killing ourselves
<heat> bbbbubt maneater mildred
<heat> look at those fuckin thighs, some strong thighs there
<heat> she will eat you up
<bnchs> zid: ahem... an hero
<zid> yea but as we all know, I am a total weeb
<zid> so I'm not interested unless she's a 4000 year old witch or dragon in the body of a small girl
<bnchs> heat: her thighs look normal
<bnchs> unless i'm used to seeing fatasses
<heat> you may be used to seeing THICCness
rnicholl1 has joined #osdev
rnicholl1 has quit [Client Quit]
<heat> please
<bslsk05> ​www.reddit.com: Reddit - Dive into anything
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<zid> oh amazing
<zid> I fetched the last of my vindaloo
<zid> I dun the rice very well, clap for myself
rnicholl1 has joined #osdev
rnicholl1 has quit [Client Quit]
rnicholl1 has joined #osdev
rnicholl1 has quit [Client Quit]
* gog claps
bgs has quit [Remote host closed the connection]
<zid> noo my book isn't here yet
Bonstra has quit [Ping timeout: 248 seconds]
<zid> It's out on the source, just hasn't been erm.. redistributed yet :(
* Ermine wants to play dark souls
<zid> play dark soul
<zid> aha, while I read book, *gone*
_xor has quit [Quit: bbiab]
<Ermine> apparently genshin impact is not as challenging
<sham1> Of course not
<sham1> They're different styles of game
<Ermine> idk, need to try out
slidercrank has quit [Ping timeout: 265 seconds]
rnicholl1 has joined #osdev
rnicholl1 has quit [Client Quit]
rnicholl1 has joined #osdev
rnicholl1 has quit [Client Quit]
rnicholl1 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<sakasama> I had no idea zid's dream is the same as mine.
<sakasama> We're like weeb antipoles.
<zid> I have a dream?
<sakasama> <zid> "so I'm not interested unless she..." <- I'd like to *be* that.
<zid> lolibaba?
<zid> fuck I can't fi nd the meme I need
<sakasama> So far, I'm only making progress on the aging part.
<zid> It was a shoop of an asian teen girl with a shoop of a fat white guy as a poster on her wall, anyway
<klange> I think by the time you make it to 5000 science will have solved the other part.
voidah has joined #osdev
<sakasama> That part could prove problematic.
<sakasama> zid: I don't really get it.
<zid> sakasama: It was making fun of fat white guys with posters of teen girls on their walls
<sakasama> Oh. Umm... okay. How is that relevant?
<zid> I wanted to link it
<klange> don't let your dreams be memes, or the other way around
<sakasama> Baffling.
<zid> well I never got chance to link it, ofc it's baffling
<sakasama> klange: Pfft. This is #osdev. The channel itself is a meme.
<klange> Impossible, that would mean I've made a successful meme.
<sakasama> s/successful//
<sakasama> Let's not get ahead of ourselves.
<bslsk05> ​pad.envs.net: CryptPad
<klange> /kickban sakasama
<klange> zid: that link does not work
<zid> works for me and someone else
<zid> someone with much expeience
* sakasama weeps.
<klange> That site does not work at all in Firefox.
<zid> I was using firefox
<zid> was slow as shit though
<sakasama> It ate a few keystrokes while I typed.
<heat> what's this garbage
<sakasama> Horribly heavy interface too.
<zid> yea horrendously heavy
<zid> I got the link from your /whois sakasama
<zid> so we're blaming you
<heat> WHATS THIS GARBO MAN
<heat> is this like a live collab environment for coding
<sakasama> zid: I am a locus of misfortune.
<zid> sweet
<sakasama> Now I must write hideous template wrappers for my lazily written data structures.
<heat> we live in a society
<zid> well that was a fun waste of time
<heat> lets have a google coding interview
<heat> i'll create the google doc
<zid> HOW MANY PINECONES ARE THERE UP MY ASS? -- Heat, 2023
<heat> given a fucked up problem description, invert a binary tree, in italic
* sakasama does not require further torment.
<zid> okay one second
<heat> if you read your CLRS you'd know there's a new way to invert a binary tree with O(diameter_of_asshole) time complexity
<zid> void invert_tree(struct node *n){ if(n->left) invert_tree(n->left); if(n->right) invert_tree(n->right); n.value = ~n.value; }
<heat> actually now im wondering what the binary NOT of a bool is
<zid> My favourite method to invert a binary tree: change printf("This is a binary tree, printed last row first"); to printf("This is a binary tree, printed first row first");
<zid> google likes databases, they should know that the data is still the same data, but just presented by a different query
<sakasama> zid: I think heat desired a different kind of inversion. Why can't we see the user's intestines?
<zid> oh, an eversion?
<zid> I'll get the kukri
<zid> You tie him down
<zid> they like to wriggle
<heat> zid, quick, you're a C expert
<zid> I am
<zid> What do you need help with
<heat> what do you think a binary NOT'ed C99 bool "true" is
<Ermine> ~true = ?
<heat> yes
<zid> IDB cus of how integers are represented
<zid> but, -1
<zid> -2
<zid> even
<heat> it's still true
<zid> yes, bitwise NOT rarely implements logical NOT
<zid> heat ur a C expert
<zid> what's the symbol for the XNOR operator
<heat> ass
<zid> incorrect, the answer was, ==
<sakasama> *
<zid> People hate finding that out.
<zid> "0 0 is same, 1 1 is same, 0 1 is not-same, 1 0 is not-same"
<zid> xnor is cmp
<bslsk05> ​godbolt.org: Compiler Explorer
<sakasama> heat: ... but I'm using a Setun.
<zid> how the fuck wide is your monitor heat
<heat> erm
<zid> also I was right, -2
<bslsk05> ​godbolt.org: Compiler Explorer
<heat> ok so it still does a normal bitwise NOT
<heat> cool
<zid> I mean, of course it does
<zid> normal integer promotion rules apply for ~
<Ermine> Because bool is basically some integer type?
<zid> same as any other operator
<zid> C only really knows how to operate on ints, so everything just ends up an int
<zid> then the funky math happens, then sometimes it truncates back down to not-int afterwards
<zid> -Wconversion will print those
roan has quit [Quit: Lost terminal]
<sakasama> It's also remarkably annoying sometimes.
<zid> It's annoying once a year when I forget
<zid> but it's vastly superior in all other cases
<zid> (like, when you try to do 1<<32 | 1 to make a 64bit 0x10000..1)
<sakasama> It sometimes means repetitive casting, when saner language rules would've preserved one of the input types.
<zid> saner languages make you do 'as int64'
<zid> for 1 + 1
<sakasama> That should warn with -Wall at least.
<zid> and I do not prefer such sanity
<zid> I live fast, type fat, die fast
<zid> I type so fat I miss the s key
<sakasama> Oh no, not that kind of sanity.
Matt|home has quit [Quit: Leaving]
<zid> exactly, I want the other kind of sanity
<zid> "Does what I want, not what I tell it"
<sakasama> So... an AI that generates hentai?
<zid> That'd be pretty useful, the tags on nhentai are sorely lacking
<sakasama> Well, they have to worry about dmca; it's understandable.
<zid> eh? no
<zid> it's just tagged badly
<sakasama> Oh. I didn't properly evaluate.
<heat> if (++deadlock_counter == 10000000) {
<heat> goto deadlock;
<heat> }
<heat> dollar store lockdep?
<zid> ULL pls
<heat> it's a volatile size_t deadlock_counter = 0;
<heat> volatile, for some reason
<klange> My ¥100 store deadlock detector used a wall clock timeout.
<heat> to be clear this is not my code
<mrvn> zid: It's a bit sad that integer literals aren't infinite precision (or largest int) and hen cast to the right type when you store them.
nyah has quit [Quit: leaving]
<heat> i love looking at these naively written UNIX clones
<heat> reminds me of better times
<heat> this kernel uses autoconf for the build
<heat> *puke*
<mrvn> In C you kind of have this with enums. The storage class of an enum is such that all members ored together can be stored.
<heat> why do all these kids use mlibc these days?
<mrvn> heat: it checks what you host system has to configure itself?
<heat> back in my day we used newlib
<mrvn> mlibc?
<klange> the kids see wayland running against mlibc and pick it for that
* mrvn wants Factorio for ARM64 Linux.
<mrvn> Switch and MacOS exists so that should be easy.
Bonstra has joined #osdev
<mrvn> n8
<bslsk05> ​wiki.osdev.org: Porting Newlib - OSDev Wiki
<heat> best article ever
<klange> Should replace that article with just "Oh gods, just don't, use musl or mlibc or seriously write your own libc instead, newlib is terrible, let it die already"
<heat> "Download newlib source (I'm using 2.5.0)"
<heat> he's using 2.5!
<heat> Stable release: 4.1.0 / December 18, 2020; 2 years ago
danilogondolfo has quit [Remote host closed the connection]
<heat> i do wonder if BSD libc is a solid alternative in general
<klange> iirc, it's not written for portability
<heat> neither is musl
<heat> which is why they're simple to port
<heat> glibc is probably too hard for the average newbie as to get a basic build you need to dive into glibc build internals and to essentially copy linux's whole sysdeps while replacing it bit by bit
<klange> the kids these days are happy to implement Linux's syscall itnerface
<heat> ... I should really get a glibc alternative build of my OS working
raggq has quit [Quit: upgrades]
<MrBonkers> heat why wouldn’t one use mlibc? It might not be as complete as musl, but it designed to be portable, you can turn off features you don’t want (not interested in Linux compatibility? Just turn it off and Linux API’s aren’t available) and it can run quite a bit of software (wayland being indeed one of them)
<heat> objectively there's little reason not to run mlibc on a hobby OS
<heat> except maybe code being of dubious quality, although I admit I haven't looked at it at all
<heat> like, getting a libc 100% right is **HARD**
<MrBonkers> Absolutely
<heat> musl has correct code of terrible quality
<MrBonkers> we’re working on getting Linux to run
<MrBonkers> on mlibc
<klange> the last version of newlib I used was... 1.19
<MrBonkers> as in, a full userland there
<zid> The best reason is so that you can write your own
<zid> cus it's more fun
<heat> ""fun""
<MrBonkers> which is mostly sysdeps at this point
<klange> if you're doing osdev already, a libc is probably your idea of fun
<zid> ^
<klange> or you're probably not having fun doing the osdev in the first place
<heat> hmmm i dunno
<zid> I like osdev cus I get to write things like "memcpy" 400 times
<klange> I pride myself on the fact that ToaruOS is all 100% homegrown garbage.
<heat> i have fun with kernel stuff, I'm not sure if I would have fun language-lawyering over a libc
<klange> It's the same as spec lawyering over some shitty hardware.
<klange> Quite happily my half-baked garbage libc will play quake, run gcc, and even had a working Python build before I went even more insane and made my own one of those.
<zid> I'm watching a man repair a 70s land rover with exactly the same mindset
<zid> except he's welding instead of writing assembly
C-Man has joined #osdev
<sakasama> Please petition to have him adapt that machine to my unique requirements.
<zid> are your unique requirements be that it's going to turn back into rust in 10 more years
<zid> like every other land rover
<zid> if so, very doable
<klange> (In defence of my mental faculties, building my own Python turned out to be one of the least stupid and most rewarding/useful things I've done.)
<zid> one day I will get off my ass and figure out how the hell to write a compiler
<zid> I got most of the way through some of the planning for some of it!
<sakasama> zid: No, we discussed my requirements already.
<zid> I don't think that's so much of an adaptation as a rewrite
* sakasama has been writing a compiler for awhile: it's why she rarely bothers with actual osdev.
<zid> a land rover is a machine that turns iron into iron oxide by being sat on
<sakasama> No sense fussing over the details; surely it can be repurposed.
<zid> could isekai you with it
* sakasama would gladly go to another planet.
<zid> congratulations, you're now a spider.
<sakasama> That's an improvement! Bonus points if it includes a balanced ternary architecture.
<zid> Nope, it's a ff2 style job architecture implemented by the local demigod
<sakasama> It could be worth a shot?