Lucretia has quit [Remote host closed the connection]
jspapp has quit [Quit: Client closed]
karenw has joined #osdev
dormito has quit [Quit: WeeChat 3.6]
karenw has quit [Ping timeout: 244 seconds]
karenw has joined #osdev
heat has quit [Ping timeout: 248 seconds]
m3a has joined #osdev
housemate has joined #osdev
edr has quit [Quit: Leaving]
duderonomy has joined #osdev
housemate has quit [Quit: Nothing to see here. I wasn't there. I take IRC seriously.]
dysthesis has quit [Remote host closed the connection]
pog has quit [Ping timeout: 265 seconds]
housemate has joined #osdev
Arthuria has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
melnary has quit [Remote host closed the connection]
melnary has joined #osdev
xenos1984 has joined #osdev
karenw has quit [Ping timeout: 265 seconds]
ajr has left #osdev [#osdev]
<cloudowind>
it looks very appealing and colorful and nice sortie , i will download and try it one day if we are alled too , welldone with your os
<cloudowind>
*allowed to
<ring0_starr>
WTF is that mascot
<ring0_starr>
i guess it's better than the go gopher
vdamewood has joined #osdev
<klys>
sortie, just looking for now; perhaps note if sortix supports -enable-kvm as a feature or limitation. also if you've rewritten sortix one may suggest writing it as news.
housemate has quit [Quit: Nothing to see here. I wasn't there. I take IRC seriously.]
housemate has joined #osdev
cloudowind has quit [Ping timeout: 265 seconds]
housemate has quit [Read error: Connection reset by peer]
cloudowind has joined #osdev
housemate has joined #osdev
housemate has quit [Max SendQ exceeded]
housemate has joined #osdev
<cloudowind>
2024 was the hottest year on record according to copernicus data
housemate has quit [Ping timeout: 260 seconds]
housemate has joined #osdev
Arthuria has quit [Ping timeout: 246 seconds]
ionut_f has joined #osdev
housemate has quit [Quit: Nothing to see here. I wasn't there. I take IRC seriously.]
m3a has quit [Ping timeout: 252 seconds]
<Jari-->
yo
goliath has joined #osdev
Fingel has quit [Ping timeout: 264 seconds]
netbsduser has joined #osdev
ionut_f has quit [Remote host closed the connection]
heat has joined #osdev
<geist>
hola
<ring0_starr>
what should i work on channel
<ring0_starr>
a map generator for a PC game from 1998? or more OS?
<heat>
normal generic kernal code or actually fucking around with low-level/arch stuff?
<kof673>
make the map generator so it can be "ported" to run on future OS
<heat>
best way to make something portable for future OSes is to write it in C89 :P
<zid>
C89 woo
<heat>
C89 specifically, because someone might think C99 is too newfangled and hard to support
<heat>
fucking MICROSOFT
dormito has joined #osdev
<kof673>
i didn't say be me :D just you can pick whatever level of "dependencies" are acceptable in the hopes it makes future "port" easier
<heat>
i mean C89 is the portablest conclusion til we get platforms that *dont* have a C compiler at all
<heat>
then uhhhhhhhh idk what the best choice would be, probably depends if the OS is in go or rust or whatever
<nikolar>
Lol as if there will ever be a platform without a c compiler
<nikolar>
Considering how much c code there is
<heat>
it's not that far fetched
<nikolar>
It very much is
<heat>
it is not
<heat>
you're assuming a platform needs and wants to compile all that c code there is
<nikolar>
No, but it will almost certainly want to compile some of the billions of lines of c code
<heat>
meanwhile go (and i think rust? not sure) already doesn't require C or a libc at all
<nikolar>
Rust very much depends on libc
<nikolar>
Not that that's an argument for anything
<heat>
maybe it will, maybe it wont, im assuming something that's obviously a special purpose OS
<heat>
obviously for a general purpose thing you'll want/need a C compiler for the foreseeable future
<ring0_starr>
ermmm
<nikolar>
And you think it's reasonable to expect someone to come up with an entirely new architecture and port rust to it
<ring0_starr>
how does rust need libc?
<ring0_starr>
aside from interop with C
<nikolar>
While deliberately not supporting c which is basically free
<nikolar>
ring0_starr: check their stldib
<nikolar>
It delegates basically everything to libc
<heat>
i'm not really talking about the arch _only_
<ring0_starr>
that being said, why is rtld a part of glibc
<ring0_starr>
i never stopped to question this
<heat>
it just is
<heat>
you could try to spin it off but in general since operating systems are C centric it made sense to connect the two
<ring0_starr>
windows doesn't...
<heat>
the musl dynamic linker is _libc.so_
<heat>
idk who does dynamic linking in windows, is it ntdll or something?
<ring0_starr>
yeah it's ntdll.
<ring0_starr>
Ldr* functions
<ring0_starr>
although more recently process space construction seems to be taken over by the kernel in an effort to support protected processes.
<heat>
ntdll (and some other low-level dlls) are kinda analogous to libc.so in UNIX land
<ring0_starr>
MSVCRT.DLL is what i considered the analogue
<heat>
i say this because while msvcrt does some logic and then shells out to ntdll or the win32 subsystem, libc.so is the C library implementation + the syscall boundary + the dynamic linker + more low level stuff
<ring0_starr>
your concept of what a libc should be is more like libglue
<heat>
it's not really what i think it should be, it just is what is it is
<heat>
which, fwiw, i think works quite well
<ring0_starr>
on windows it's KERNEL32 -> KERNELBASE -> NTDLL for syscalls, NTDLL isn't supposed to be used by application code
<ring0_starr>
i feel like it ought to be more loosely coupled
<heat>
it works quite well because for unix libc.so is core system software, you can't really have a system without it
<heat>
you don't need loose coupling there
<heat>
your linux distro or your BSD variant or your solaris or whatever give you the libc.so the same way they give you the kernel
<ring0_starr>
so NTDLL is like the syscall boundary interface, rtld, and then kernel32 is like half of libc by providing higher level manpage-section-3 versions of each
<heat>
yeah
<ring0_starr>
the Windows version
<ring0_starr>
and then MSVCRT provides the standardized C interface by using the Windows interface from kernel32
<ring0_starr>
I feel like it's more of a mess but the separation is pretty logical
<heat>
obviously the "stick fucking everything in libc.so" thing works well while you're linking with libc.so anyway, but if you deviate from that you'll obviously have to reimplement that logic (like golang did)
pog has joined #osdev
<ring0_starr>
im guessing your kernel is monolithic
<nikolar>
Also windows only guarantees API stability through their dlls
<nikolar>
Syscall interface can change at any time
<heat>
several systems only guarantee ABI stability thru libc too
<heat>
like fuchsia or some (all?) of the BSDs
<ring0_starr>
does linux make any kind of guarantee? SYS_socketcall doesn't exist on amd64
<heat>
also yeah what \Test_User said, the ABI is generally not the same cross-arch
<pog>
neither is my VPS, it did the same thing it's been doing every few days for a month. it fails with no outward indication of failure, and the host stops recording its stats like it's dead or something
<pog>
hosting company was less than helpful, they closed my support ticket without even replying
<heat>
like struct stat has a different layout depending on the architecture for Reasons
* zid
ignored
craigo has joined #osdev
<ring0_starr>
recursive descent
<heat>
oh cool, box drawing chars
<zid>
yay, thank you heat
<zid>
wish I could have just used putchar:(
<heat>
you would be able to if you had used a tty
goliath has quit [Quit: SIGSEGV]
<zid>
wputchar is evil
GeDaMo has joined #osdev
<heat>
the way you render this stuff portably is through switching character sets in the VT100
<heat>
because unicode is not real and can't hurt you
<zid>
also I was lazy about seeding so you only get a new maze once a second
<zid>
also, C89, so if you want you can port it to bare metal ;)
<zid>
boot your os and it starts spitting out mazes with specific seeds to let you know what's happening
<heat>
i dont think the box drawing chars are c89?
<zid>
They're strings heat
<zid>
not multibyte literals
<zid>
you just need a compiler that knows what source charset utf-8 means
<heat>
<source>:185:1: warning: control reaches end of non-void function [-Wreturn-type]
<heat>
185 | }
<zid>
(or don't need, cus it's just utf-8, ascii compat yo)
<heat>
LITERALLY NOT C89, PLS FIX
<zid>
tis a warning
<zid>
you'll live
<zid>
I also have some formatting mistakes, it's v1
<heat>
i think C89 did not have the implicit return 0 thing in main
<zid>
also it's C99
<zid>
cus of designated initializers
<zid>
more importantlyu
<zid>
you can just delete all the x = bits though
<zid>
unless I fucked up the order
frkazoid333 has quit [Ping timeout: 260 seconds]
<sortie>
<cloudowind> it looks very appealing and colorful and nice sortie , i will download and try it one day if we are allowed to , welldone with your os
<sortie>
You can just download Sortix already. The nightly builds are great
<sortie>
<klys> sortie, just looking for now; perhaps note if sortix supports -enable-kvm as a feature or limitation. also if you've rewritten sortix one may suggest writing it as news.
<zid>
allowed by his mother
<sortie>
Ah good idea to clarify I have no native kvm. I'm preparing the website for the upcoming 1.1 release, but it isn't out yet, so no news. Meanwhile I just changed my OS to be more of an officially rolling distribution
<heat>
rolling distribution? sortie will do everything except releasing 1.1, smh