<geist>
wheni lived in san jose, ca the water was ridiculously hard too
<zid>
Your mugs get limescale if you leave your coffee too long.
<geist>
f you actually owned a house you would almost certainly pay for some sort of house water softener
<geist>
but i was just renting so yeah
<zid>
best I can find is 183-440 for san jose
<zid>
I am 200-300 based on whatever maps I can find
<zid>
so probably about the same
<geist>
i'm on a well here, dunno how hard it is to be honest, but it seems to lather up fine, so i bet it's fairly low
SunClonus has joined #osdev
SunClonus has quit [Remote host closed the connection]
matrice64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
SunClonus has joined #osdev
navi has quit [Quit: WeeChat 4.1.2]
Arthuria has joined #osdev
navi has joined #osdev
navi has quit [Client Quit]
<heat_>
they renamed bard to gemini
<heat_>
i hope someone got promoted
<geist>
SYNERGY
ramenu has quit [Ping timeout: 268 seconds]
<zid>
what does an llm have to do with twins
<zid>
have they said if they want it to be said gemini like nasa or gemini like a human btw
<heat_>
no clue
<heat_>
"Bard is now Gemini"
SunClonus has quit [Quit: Leaving]
<adder>
Bom dia heat.
<heat_>
hi
<heat_>
3am btw
<adder>
I know. This is the only greeting I know in Portuguese.
<heat_>
boa noite adder
[itchyjunk] has quit [Read error: Connection reset by peer]
<heat_>
"Our mission with Bard has always been to give you direct access to our AI models, and Gemini represents our most capable family of models. To reflect this, Bard will now simply be known as Gemini."
<heat_>
so they renamed the product after the backend?
<zid>
In a way that makes no sense
<adder>
It could've been cancer.
SunClonus has joined #osdev
SunClonus has quit [Remote host closed the connection]
ramenu has joined #osdev
Matt|home has joined #osdev
<geist>
heat_: yeah beats me. though to be fair i think zero people outside of google knew what bard is
<geist>
so may as well rebrand and start a new marketing push
<zid>
adder: cancer would be more accurate at least
<heat_>
geist, tbf generally no one knows llms besides chatgpt
<heat_>
but, hey, bard worked pretty well the few times i played with it
<zid>
great, it can ruin even more things then
<heat_>
don't be like that
<heat_>
think positive: you can ruin those things before AI gets to them
Arthuria has quit [Ping timeout: 276 seconds]
pretty_dumm_guy has quit [Ping timeout: 264 seconds]
heat_ has quit [Ping timeout: 268 seconds]
[itchyjunk] has joined #osdev
stolen has joined #osdev
ramenu has quit [Ping timeout: 264 seconds]
edr has quit [Quit: Leaving]
geistvax has joined #osdev
<geistvax>
boo!
<geistvax>
it's cool enough here, time to turn the vax on again
m3a has quit [Ping timeout: 256 seconds]
<geistvax>
acts as a reasonably nice space heater
senku has quit [Remote host closed the connection]
Gooberpatrol66 has joined #osdev
<geistvax>
also gonna finally get this bitchx compile working
<geistvax>
this old irc app is pretty limited, just plain irc2
<geistvax>
hmm, looks like it might actually make it this time
<zid>
linking is surely the tragic part though
<Mutabah>
Hmm... I should get back to osdev and put an IRC client in my "new" project
<Mutabah>
but distract by compiler work
<geistvax>
oooh looks like make install is working
<geistvax>
this is netbsd 1.5 so it's not ridiculously old
<geistvax>
but it was old enough that it didn't have double round(double);
m3a has joined #osdev
<geistvax>
oooh lets see
geistvax has quit [Quit: Leaving]
geistvax has joined #osdev
<geistvax>
oh my this is much nicer
<geistvax>
actually properly modern looking, with colors, multiple channels, etc
<geistvax>
the previous irc client was only one better than a raw telnet really
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
<kazinsal>
nice
<geistvax>
yah
<kazinsal>
after I replace the exploded caps on this PS/2 I need to find an MCA ethernet card for it
<geistvax>
yeah that might be a bit tricky
gbowne1 has quit [Remote host closed the connection]
<kazinsal>
yep, so far I've found exactly one person on the net making repro MCA cards and it's effectively a sound blaster pro repro attached to some glue logic for the MCA stuff
gbowne1 has joined #osdev
<geist>
i know tubetimeus was doing a bit of that too
<kazinsal>
so maybe I could get lucky and find some kind of repro ISA to MCA converter
<geist>
but MCA is traditionally weird
<kazinsal>
but MCA has some peak 80s IBM proprietary cruft for autoconfiguration
<geist>
yep, did you mean to set out to get a MCA based PS/2 or was it just what you got?
<kazinsal>
it was just what was available and not $texas
<kazinsal>
$200 CAD shipped from quebec
<kazinsal>
and the only issue with it seems to be one blown tantalum and one slightly singed one next to it
<geist>
which model is it?
<kazinsal>
model 50
<kazinsal>
286, 1MB RAM, 20 MB HDD
<geist>
oh that's getting into the good stuff. is that 286 or did it go 386 by that leve?
<kazinsal>
the neat thing is the HDD still spins up and isn't clicking
<geist>
ah. i remember my dad had a model 70 at his office, and it was drool
<kazinsal>
so hopefully it still works
<kazinsal>
but with the blown cap on the 12V rail of the floppy riser I can't boot the setup disk to configure the CMOS etc
<geist>
yah i also remember that being one of the first places i saw 3.5" floppies
<kazinsal>
yep
<kazinsal>
as per usual for mid 80s IBM though it's got a wonky custom connector
<kazinsal>
but someone *has* made a board up to convert regular 34 pin drives to the 40 pin edge connector
<geist>
oh weird, i wonder what is in the extra 6 pins?
<kazinsal>
power and drive sense
<kazinsal>
they moved the molex power onto the edge connector
<kazinsal>
and added a pin for drive sense for certain models
<geist>
oh that makes sense
<geist>
i wonder how the drive sense manifests itself. since the floppy controller itself must be standard enough that existing stuff works with it
<geist>
the drive sense logic must come in somewhere else, maybe some separate bit in a new register
<kazinsal>
yeah, I'm not sure. it's probably somewhere in the half dozen 74xx TTL chips on the riser board
<kazinsal>
there's also a ribbon cable that goes to a funky DB-37 on a removable expansion slot bracket
<kazinsal>
apparently you can plug in an external 1.2M 5.25" drive into it
<klys>
I think I have a ~37 pin D shell cable around here
<klys>
keep meaning to look into external floppy drives; retro stuff has really inflated over the last ten years
<geist>
i know. it's insane
<geist>
even this old vax equipment i just got the other day, if i priced it out and actually sold the parts it's crazy expensive
<geist>
heck i saw the two hard drives in it be up for sale for like $2500, which is ridiculous
<geist>
i doubt they get it, but hey
<klys>
I have the intellec dual 8" drive unit, just no time on my hands.
<klys>
it has a relay which lowers a thin plastic armature and the armature is tipped with an orange pad, opposite the drive head which is mounted firmly below
<klys>
so next thing I need to do is figure out what kind of materials were used there
<klys>
the parameters are said pad would have to rub smoothly against a PET polyester plastic sheet measuring 0.003" across, as the disks were one sided.
<klys>
probably a good idea to get some sample PET polester sheet too
<zid>
potassium titante obviously
<klys>
K Titanate is very wear/abrasion resistant according to reports
<zid>
(Found it in a random japanese patent, not sure what they were actually talking about, but it's apparently a real substance used in floppy drives for.. something)
netbsduser` has joined #osdev
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
gbowne1 has quit [Remote host closed the connection]
<geist>
reminds me i should take apart and fire up my kaypro II which i haven't in some number of years
<geist>
last time i did it started eating disks i think
<geist>
or... the disks i had were just on the edge of working ever again
<geist>
but i remember formatting a disk and then immediately having problems reading it, which was a sign i need to stop what i'm doing and see what's up
matrice64 has joined #osdev
<geist>
and then i put it away nad like 5 years later still havent gotten it out
<mjg>
:)
<geist>
but it's just a set of standard Shugart 5.25" drives
<mjg>
i have an atari 65xe i grew up with at my parents house
<mjg>
have not tried using it in 20 years
<mjg>
i wonder if any of the 5.25" disks even work
<geist>
every time i play with my apple 2s i've been very impressed how well old disks work there, but i think the density is so low they have a lot of higher life
<geist>
the higher density stuff i think ages out faster
<mjg>
how low?
<geist>
less flux per bit
<mjg>
is that just 160KB capacity?
<geist>
uh. i think i]like 180KB?
<geist>
or 160 yeah
<geist>
one side
<mjg>
right
<mjg>
ye i find it plausible these fuckers have higher survival rate
<geist>
the format on the apple 2s is also different from most other drives, a different bit format, since Woz did it all manually
<mjg>
heh
<geist>
and maybe it has a slightly higher survival rate
<geist>
years ago i went through all my 3.5" 1.44 drives to archive what i could and had a fairly high failure rate. like 20% or so
<mjg>
fwiw i had seen people unsealing windows 3.11 and windows 95 floppies
<mjg>
few years back
<mjg>
and having them work
<geist>
heh yeah
<geist>
yah master disks i had much better luck, but i have no doubt they were written 'harder'
<mjg>
perhaps they negleted to mention how many sets did not ;)
<geist>
i ddo think i actually have a set of windows 3.0 disks
<geist>
came with the cumulus 386sx we had in like 1990
<geist>
came with 3.0 and then i think scored some 3.1(1) ones from my dads work later
<geist>
i do know i have a set of borland 3.0 and 4.0 floppy disks
<geist>
the latter is a lot of disks, like 15
<mjg>
now i'm curious what's survival rate of cartridges
<mjg>
the
<geist>
probaby pretty high
<geist>
if it's a mask rom there's really no reason it'd crap out
<klys>
some of the first disks I ever had contained FIG Forth-83 before we rewrote them with BBS downloads
<mjg>
i'm worried about the connector
<mjg>
people had a habit of puffing air (is that the expression?) onto it
<mjg>
for all i know most cases corroded enough to no longer work (but probably fixable)
<mjg>
i mean they would do it with their mouth, putting moist onto it
<kazinsal>
do not lick ye drive connector
<kazinsal>
reminds me I need to pick up a can of air this weekend
<kazinsal>
thoroughly get the dust out of these machines
<klys>
those require practice to make sure you don't use them upside down
<geist>
dont huff that either
<geist>
it's fairly toxic
<kazinsal>
oh yeah r-134a is not a fun recreational substance
<mjg>
snort fentanyl instead
netbsduser` has quit [Ping timeout: 264 seconds]
<mjg>
interestingly there is a way of de-yellowing cases
<geist>
you're getting me nostaligic for 386s today now
<mjg>
you can make it all look brand new
<klys>
otherwise you get a fluid substance all over your board which may eventually dry out yet it can cause electrical problems in the short term, and you don't want that in your high density components
<kazinsal>
the peroxide cream and UV method does wonders but can damage the underlying plastic
<geist>
might have to dig thatout and engage in some dos/windows nostalgia
<geist>
maybe finally try to install OS/2 or something on a 486
* mjg
jelly
<geist>
at some point i did finally get one of those gotek usb things
<kazinsal>
yeah it's gonna be fun to see what kind of weird 286-specific stuff I can run on this thing
<mjg>
i can only mess with stuff in a vm
<kazinsal>
I can't remember if win3.1 will run in 286 pmode or not
<geist>
a few years back i put together a am486-133 off ebay
<kazinsal>
I think 3.0 will
<geist>
was problematic, but all told not that expensive, especially since it came out of eastern europe
<geist>
hardest part was getting a case that asn't broken
<geist>
oh that reminds me, i saw somewhere an ATX to AT connect converter thing
<geist>
so you can use an ATX PSU on an AT mobo, since AT PSUs are old and shitty and harder to find than anything else
<kazinsal>
oh handy
<klys>
I had that experience with my AMD-MP board which caused one of my micron m.2 disks to develop errors (through various connectors and the onboard IDE port), this machine at its most recent use has popped a couple of caps and bulged a couple more. reasonably sure it will still boot linux via scsi, though I have already replaced those caps.
<geist>
yah never occurred to me that that would exist, but it makes total sense, even easy to do
<geist>
hard part is the switch
<klys>
as in, the caps popped again recently, and they were the replacements
<bslsk05>
'AYA 7" (7-Inch) ATX 20-Pin to at P8+P9 6-Pin with Push Power Button Wires Converter Adapter' - ''
<geist>
one of these things i didn't even consider existing, and then its totally obvious
<geist>
i remember fighting getting just the right AT PSU for the 486, even had to buy a new one for it
<klys>
beats getting a new AT psu
<geist>
i did remember reading something about maybe there being an issue with the 5V rail getting used harder on the AT PSU, whereas an ATX one maybe puts more out on 3.3?
<klys>
the AMD-MP board I am referring to is a retro early amd64 dual-socket board with an Athlon MP in place (well, I had two...) with several PCI and one AGP slot
<geist>
mmmm, yeah. i had one back then too, back when you could still stuff an athlon xp in a dual socket board
<klys>
thing is, if the caps pop again I hesitate to keep using the board
<geist>
tere was a brief window where athlon xp == athlon mp, and then for a whiel you could pop a resistor off it and then it became a mp
<zid>
I had a dying 3.3V rail on my modern PC, you couldn't tell unless you did *certain* things, it was very strange
<geist>
was just strapped differently
<zid>
like, the ME would act up, but the cpu was fine
<klys>
so eh, I see the VAX, it's like the one I remember the campus property auction dude trying to dispose of around y2k; as in yeah it would be that size.
<klys>
needless to say I had no room for the thing at the time
<bslsk05>
gunkies.org: BA23 Enclosure - Computer History Wiki
<geist>
yep, just to the left of that pic. but i have modern stuff in it, debating if it's worth trying to mount the pdp or not
<klys>
right on
<geist>
i did just a few weeks ago get ahold of some rack mount rails for it though
<geist>
but without a front panel, i dunno
<klys>
so the drives would be on the left of that photo
<geist>
but yeah it looks like a shell, it just doens' thave any drives. all of the cards are in the back half of it
<geist>
yah
<geist>
i dont have a good context picture for it, but basically the QBUS backplane has like 5 or 6 slots, and faces towards the rear
<klys>
and which one is the PiDP
<kazinsal>
been thinking about getting a half rack, jamming it in the corner of the room, and just running 40GbE to it from the cabinet with the fibre box
<geist>
a couple 2gses in the shelf below but covered up by a box i need to get rid of
<klys>
and an oscilloscope
<geist>
yah thats an old one, i have a nicer one across the room, but that's a total mess
<klys>
I need to read a book about scopes except said book is in a different town and he wants to keep it there
<geist>
scopes are basically a thing you figure out pretty quickly if you have access to ne
<geist>
for basic stuff they're pretty simple
<klys>
I was looking for info on the input voltage and how to get a high voltage signal transduced
<klys>
are those floppy drives plugged in to the iigs?
<klys>
seems you have eight of them, not sure if you could do that
xenos1984 has quit [Read error: Connection reset by peer]
rustyy has quit [Ping timeout: 256 seconds]
<geist>
no they're on the shelf. but you can plug as many floppies into an apple 2 as you have card slots
<geist>
the most i think i've done is like 6
<geist>
each card supports 2
<geist>
the 2gs i've plugged 4 drives into, 2 5.25s and 2 3.5s
<klys>
do you have a pc 360KB drive too?
<geist>
drives on apple 2s are basically addressed by the card slot they're in, and the boot drive is the first one from slot 7 downwards
<geist>
no, i actually dont have much in the PC 5.25 department. only really one machine with 5.25
<geist>
the 486, the drive game with it
<klys>
so it's 1.2MB
<geist>
haven't generally been nostalgic about PCs, so until pretty recently i haven't kept anything around any earlier than the 2000s
<geist>
yah
Matt|home has quit [Remote host closed the connection]
<klys>
so I recently put an s3 vga card into a pc to get it to run a dos game
<klys>
that spare matrox g450 I had in it wasn't helping much, and well, I have an es1371 in there which is supposed to work with BLASTER though I have yet to figure that out
rustyy has joined #osdev
<geist>
nice. yeah i have a pile of old vid cards. my go-to old cards are a pair of matrox milleuum and mystique ones
[itchyjunk] has quit [Read error: Connection reset by peer]
<geist>
and a 3dfx voodoo 2 and 3
<geist>
i mostly purged old PCs a while back, but kept all the cards. so i have a pretty solid collection of old nics and vid cards and sound cards
<geist>
my original SB pro
<klys>
should get another old-style vga card or three really
<geist>
mmm paid good monies for that
<geist>
yah
<geist>
what i really dont have is a lot of ISA stuff. most of my cards and whatnot were from the PCI era
<geist>
since i reallydidn't start buiding my own PCs and collecting hardware until about 1995+
<klys>
I think the most common one was a 16bit IDE/floppy/2serial/parallel card
<geist>
yah never really had a PC with that era. the 386sx we had (which i got a duplicate of) was an all-in-one motherboard thing
<geist>
one of the styles where there's a super dense packed ISA card that is basically the mobo on a riser, sideways
<klys>
and the original PC 5150 came with a clock/8250 card (with battery), floppy card, parallel card, mfm hdd card, and hercules 720x348 mono card, and then we put in a tiara arcnet card
<geist>
yah
<klys>
there were just five slots, eight on the XT
<geist>
yah i hear the first one you were pretty tight on slots once you got the basics in
<klys>
the clock battery I believe powered the nvram so the MFM HDD controller could remember the disk geometry.
<klys>
HDD technologies back then included ST506/412, MFM, RLL, MFM/RLL, ESDI, and IDE
<klys>
one of the fun things we used to have was a couple of floppies that came with the book "Stupid PC Tricks" for DOS
<geist>
yah i managed to avoid all of that
<klys>
one thing I am trying to remember is there was a halt/debug button commercially available via Computer Shopper or similar, whose name evades me, G-something? anyways it was supposed to help you prevent losing data
<geist>
huh. was it a plain NMI or did it do something like assert a wait state?
<klys>
it was probably the NMI
xenos1984 has joined #osdev
<klys>
is that altair still doing game of life
<geist>
actually if it were it's mostly just flat lights, actually not as interesting to look at
<geist>
it's just sitting in a CP/M prompt
<klys>
oh and what disk interface is it emulating
<geist>
hmm, good question
<geist>
probably the 'standard' one. it emulates 3 shugart drives
<geist>
that's atually kinda the most annoying thing about the clone: it can only hold 3 disk images, and you have to basiclaly stop it and transfer a new image to switch disks
<geist>
since it doesn't have a SD card or anything
<geist>
honestly from a CP/M thing i like to use the RC2014 with a proper compactflash hard disk
<geist>
but less blinkin lights
<klys>
except it might have a serial port which you could slip onto a network
<klys>
which leaves a question as to if there's enough ram to do slip
<geist>
yeah the altair clone is an amazing replica, but it's mostly a thing you look at and lightly play with
<klys>
yeah 64KB is probably too small for a slip interface
<geist>
it's perfectly cycle accurate and timing accurate, but ultimately limited because it's apparently tight PIC assembly
<geist>
and so only has a bit of ram
<geist>
yah
<klys>
and on top of it, commander Xs?
<geist>
yep! i need to play a bit more with that
<geist>
aso one of the rosco m68k boards
<klys>
I see that there too
<geist>
i have a new 030 based one coming in the mail, i need to hack on that one more
<geist>
the microvax below also has a copy of openvms running
<klys>
I seem to recall one of the CS compiler students was creating a calling convention for the PC which had to push a magic value so the debugger could find the backtrace. His calling convention was around eight instructions long and used all the 16-bit regs. it was around y2k.
<geist>
i remember BeOS did some sort of magic thing on the kernel stack so you could find the exception frame and keep walking through it
<klys>
also the m68k/coldfire arch uses around eight regs iirc
<geist>
for the magic thing you're talking about?
<klys>
so I was going to ask if you had coded a calling convention for m68k
<geist>
aside from the thing the compiler emits no. it's basically x86: push args on the stack iirc
<geist>
and then there's some hard coded things like a7 is the SP and i think a6 is the FP
<geist>
i forget where return goes, but probalby in d0
<bslsk05>
github.com: lk/arch/m68k/exceptions_asm.S at master · littlekernel/lk · GitHub
<geist>
movem is a lovely instruction
<klys>
since I got the itch to do press-n-peel, I now have a large bottle of 90% muriatic acid and a couple of roughneck totes to do the acid bath and etch in, and a canon b&w laser printer, and well some film and boards and etchant I had. all I need is an iron
<geistvax>
hmm, itneresting!
GeDaMo has joined #osdev
vdamewood has joined #osdev
gbowne1 has joined #osdev
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
gbowne1 has quit [Remote host closed the connection]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
gbowne1 has joined #osdev
gbowne1 has quit [Remote host closed the connection]
vdamewood has joined #osdev
Ermine has quit [Remote host closed the connection]
Ermine has joined #osdev
stolen has quit [Quit: Connection closed for inactivity]
heat_ has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
pretty_dumm_guy has joined #osdev
Harzilein has quit [Quit: ircII EPIC5-2.1.7 -- Are we there yet?]
heat_ has quit [Remote host closed the connection]
heat_ has joined #osdev
gog has joined #osdev
<heat_>
eww, the gcc abi doesn't specify natural alignment for ints and pointers
* sham1
looks at backlog
<sham1>
heat_: yeah… it's weird just what sort of "character development" got into Lunduke. He backslid into the yikes-zone
<heat_>
i have a feeling most linux youtubers slide into the yikes-zone? at least it's remarkable how many yikes-linux-youtubers there are
<heat_>
it's mildly concerning
<sham1>
Yeah, Linux YouTube has been weirdly radicalised over the years
<Ermine>
Linux youtube section is 100% cringe
<heat_>
linux everything is cringe
<heat_>
the only linux thing i tolerate is r/linuxcirclejerk
<Ermine>
Onyx is not
<heat_>
onyx is BASED
<heat_>
top 5 operating systems
<nortti>
I think one problem is that "linux" is just too broad of a category for there to be much meaningful discussion that most people could engage in, incentivizing very surface level stuff
<heat_>
1. Onyx 2. FreeBSD 3. NetBSD 4. Solaris 5. Linux
<heat_>
0. IBM AIX
<Ermine>
-1. HP-UX
<nortti>
-2. Mark Williams Coherent
<heat_>
IBM AIX is better than HP-UX
<heat_>
fite me bastard
<Ermine>
how dare you
<Ermine>
HP-UX is the bestest UNIX ever
<Ermine>
but -3. Minix; -4. OpenVMS
<heat_>
Tru64
<heat_>
IRIX
<heat_>
and we mustn't forget xenix
<Ermine>
old but gold stuff
<heat_>
nortti, btw, to me the big problem isn't the "surface level stuff" but the clear bias and weird tribal behavior that most linux communities have
<heat_>
ooogaa boogaa linox good microshit wincrapper bad
<heat_>
upvote
<nortti>
oh yeah, that too
<nortti>
honestly been away from those spaces so long I didn't know they were still doing that
<heat_>
it's usually not as blatant, but it's there
<heat_>
"Just installed FreeBSD and having the time of my life."
<heat_>
is he having an orgasm while using freebsd or???
<kazinsal>
whoops, almost lit my apartment on fire
<Ermine>
yes
<kazinsal>
somehow managed to set off the beeper but not so much so that the FD showed up, so I'm blasting fans out the window
<Ermine>
but don't forget kern.sched.preempt_thresh=224
<mjg>
heat_: that's also a circlejerk sub
<mjg>
i think the most unhinged post was some guy claiming freebsd has tech not seen elsewhere
<mjg>
and then listed a bunch of shit ported from other systems
<mjg>
zfs, dtrace, kms... :d
<mjg>
now you would think dude was sarcastic, but no
<Ermine>
He is correct
<Ermine>
He haven't seen that tech elsewhere
<heat_>
>Linux kernel is only ran by Linus and he has never named a successor. If he dies, we don't know if the person that replaces him will make it proprietary or not
<sham1>
GNU/Linux
<mjg>
did you mean Arch GNU/Linux?
<sham1>
No, screw arch
<heat_>
>Linux is ideal as a workstation. FreeBSD for server workloads. OpenBSD, security. AIX/Solaris (commercial *NIX): production workloads - hardware partitioning and OS virtualization, HA etc.
<Ermine>
Gregkh rubs his hands waiting for Linus to die so he can make linux proprietary
<mjg>
there was a fucking guy writing a tech blog where he did some "deep dives" into openbsd kernel
<mjg>
which demonstrated fucker has no idea what he is doing
<mjg>
ofc this somehwo got upvoted big time on lolsubs
<mjg>
for example when discussing fork he did a rundown of some bullshit like allocating a pid
<mjg>
meanwhile everything of complexity was skipped
<mjg>
:d
<mjg>
basically all you need to know about fork is that a pid gets allocated
<mjg>
does onyx allocate pids?
<sham1>
Just use vfork. Ez
<mjg>
did you know openbsd does not iimplement real vfork?
<mjg>
:d
<sham1>
How about REDOX
<sham1>
Rust
<Ermine>
You people seem to have your own ideas on how to waste time
<heat_>
mjg, the onyx pid allocation doesn't wraparound properly yet, it's just a pid++;
<heat_>
also, didn't netbsd re-implement vfork after UVM?
<Ermine>
It's like me watching phoronix comments
<heat_>
did openbsd just strip that?
<mjg>
they did not /strip/ anything
<mjg>
they failed to fix original bsd damage
<kazinsal>
running a rust machine to span the alarm off probably counts for osdev
<heat_>
mjg, what? if i get the history of vfork straight: it was introduced way back, then ~4.4BSD they killed it (CoW is good enough, praise mach vm), then in netbsd they got it back with uvm
<heat_>
so how does openbsd not have vfork?
<mjg>
they forked from netbsd before uvm
<sham1>
Mooo
<heat_>
yeah but they ported uvm?
<mjg>
only some parts
<heat_>
great shit theodore de raadt
<mjg>
look mofo
<mjg>
you either secure the system
<mjg>
or make it faster for attackers to use it once they root the kernel
<mjg>
openbsd chose the former
<mjg>
netbsd chose the latter
<Ermine>
netbsd is not fast iirc
<heat_>
ohhh, thats a good mitigation
Turn_Left has joined #osdev
<heat_>
even if the system is compromised, it's too slow to do anything
<mjg>
Ermine: of course it's fast, their webiste says so
<heat_>
Ermine, vfork is way faster than fork
<mjg>
heat_: security not even by obscurity but by pointlessness of attacking
<mjg>
fucking conference paper right there
<heat_>
and uh, i dont know how fast netbsd is rn, but it wasn't *awful*
<Ermine>
In my experience, the only fast thing about netbsd is how fast it is to piss me off
<heat_>
probably Best Used On A VAX System
<mjg>
Ermine: few years back there was a significant round of unfucking the system
<heat_>
yeah it's in the new release
<mjg>
Ermine: it got to a point where it still sucks, but is usable from perf standpoint
<Ermine>
Everything that is left is to bring it into minix repo
<mjg>
i wish phoronix benched netbsd so that i ahve numbers i can refer to :(
<mjg>
something recent
<heat_>
hey i like to make fun of the BSDs, but sometimes it's too much
<heat_>
freebsd is a good system
<mjg>
OOH
<mjg>
lfmao
<heat_>
netbsd is also good (but less so)
<mjg>
now you are pushing it mofo
<heat_>
dragonfly is okay
<heat_>
and that's it
Left_Turn has quit [Ping timeout: 268 seconds]
<Ermine>
Rust + bcachefs = 82 comments
<heat_>
netbsd however deserves to get made fun of by including fucking lua in the kernel
<heat_>
LUA
<sham1>
Lua is good, actually
<heat_>
onyx will be the world's first kernel to support shell scripting
<heat_>
by including a whole copy of bash
<Ermine>
woooooo
<mjg>
why not powershell
<heat_>
sir, i'm writing a unix
<Ermine>
powershell is cross platform
<heat_>
so either GNU/LINUX shill bash, m i n i m a l i s t busybox ash, or BSD weirdo tcsh
ramenu has joined #osdev
<sham1>
zsh
<Ermine>
Let's put it like this: powersh
<sortie>
heat_: weirdest things in your kernel go go go
<sham1>
Or fish, so you can use rust
<sortie>
heat_: Beself also
<mjg>
weirdest thing is a kernel in rust for sure
<sortie>
heat_: Fun fact Sortix 0.3 contained pong and snake and game of life in the kernel
<mjg>
heh so redox is a microkernel
<Ermine>
it is
<mjg>
i'm guessing they rolled with it as an excuse as to why it sucks
<mjg>
perf wise
<sham1>
But it's rust, so it's fast and zero-cost abstraction
<heat_>
sortie, hmmm, good question, i can't remember if i ever had something really stupid in the kernel
<heat_>
besides C++
<Mutabah>
The GUI? huehuehue
<heat_>
i never had that osdev phase where you cram a bunch of crap in the kernel because you don't have userspace yet
<heat_>
i skipped straight to the "crap linux" phase
<Mutabah>
Ooh, what about "UDI bindings"
<Mutabah>
that was a fun waste
<heat_>
lol
<sortie>
heat_: I mean I do have stuff in my kernel that you personally probably don't like but it's also fine
<Ermine>
When I've read UDI article on wiki.osdev for the first time I though it's a damn good thing
<sortie>
I did have a whole kernel debugger facility at one point, but removed it since it wasn't very stable and maintainable. It kept copies of all the symbols in user-space when it loaded ELF programs
<sortie>
So I could bt into user-space
<sortie>
But it really relied on the VGA text buffer which wasn't available and safe with graphics on
<sortie>
heat_: Another interesting thing I removed -- not from the kernel but from the wider OS -- was that I used to use --exec-prefixes so multiple archs could live side by side. E.g. /x86_64-sortix/bin
<sortie>
I also used to have /dev/net/ with subdirs and devices for each address family and protocol. I replaced that with socket(2).
<sham1>
One thing that would be funny would be to use either Nix or Guix to be able to do those kinds of prefixes
<heat_>
very debian :)
<sortie>
heat_, yeah, ultimately I decided to only support one arch per install and it became all muuuuuuchhhhh easier
<heat_>
yeah i can't really think of much weird shit in my kernel
<heat_>
i guess the weirdest part is it's uncanny linux
<sham1>
Other than it being named after a rock?
<Ermine>
Meanwhile I've started getting a feeling that I can write my own os
<heat_>
hi ermine no you can't write an os yet please continue to send patchen thanks
<sham1>
I could probably write an OS but I'd need to actually get motivated
<Ermine>
can != will
<Ermine>
There are many options on how to make a microkernal
<heat_>
you want to write a microkernel?
<sham1>
Nanokernel
<Ermine>
yes
<heat_>
do not
<heat_>
thanks!
<Ermine>
why not?
<heat_>
too many microkernels gathering up dust
<sham1>
Monolithic kernels aren't interesting
<Ermine>
and?
<heat_>
sure they are
<Ermine>
^
<Ermine>
re sham1
<heat_>
monolithic kernels are not a solved area
<Mutabah>
Ermine: UDI was a good idea, and has some good technology design... but it's not really useful in the modern world, things moved too fast for it
<Mutabah>
and it didn't have enough osdev buyin - i.e. windows and linux ignored it
<Ermine>
heat_: what is not solved about monolithic kernels?
<heat_>
how they do things, how well they do them, are they safe, are they fast, etc
<sham1>
heat_: they're probably not solved, but I feel that microkernels (and smaller) are more interesting. The architecture feels nicer since things can be properly asynchronous, isolated from each other etc.
<Ermine>
the same things hold for microkernels, don't they
<heat_>
i didn't say microkernels are solved either
<heat_>
but i know of one useful microkernel (nintendo switch's kernel), and i know 10 monolithic ones, and active development does go towards the monolithic ones usually
<heat_>
(well, i know more than 10)
<sham1>
Well osdev here is most likely a hobby, so I don't see how that's really relevant
<heat_>
oh sorry, qnx and sel4 have their own niche
<Ermine>
I don't expect to get something useful
<heat_>
sham1, it depends on what you want to do
[itchyjunk] has joined #osdev
<heat_>
what i said should be interpreted as a half-joke (like 90% of the things i say)
<heat_>
but it really depends on what your objective is
<sham1>
Of course
<heat_>
like i wouldn't advise you to write an OS in go but if you want to try it, do it
<heat_>
microkernels to me are too extremist to be useful
<heat_>
ideally some kind of middle term between monolithic and microkernel can be achieved
<sham1>
Well that's a hybrid kernel, so for example NT1 maybe
<sham1>
NT
<nortti>
I do wish there was better terminology for stuff in that area, since "hybrid kernel" is too vague to really communicate much
<heat_>
traditionally most operating systems do try to keep non-critical code out of the kernel
<heat_>
even UNIX delegated a lot of stuff to userspace
<heat_>
ironically windows (and NT) are the ones who crammed a lot of GDI and http crap into the kernel
<nortti>
oh, they have http in there too?
<sham1>
One thing that annoys me about osdev in general is that unless you're doing a POSIX system, things get unnecessarily difficult. For example, self-hosting gets annoying since stuff like GCC and clang tend to assume things like POSIX and whatever
<heat_>
but, say, for linux, very few things could be removed from the kernel. maybe coredumping? it's kind of silly the kernel is the one doing that
<heat_>
nortti, see http.sys. i don't know how much they're doing in it, but i do know they have it
<heat_>
sham1, i don't think it's unnecessarily difficult, it's rather necessary
<heat_>
if you're breaking the conventions of every modern OS out there, there's a price to be paid
<sortie>
sham1, at least for bintuils and gcc, it's actually quite minimal what they need to run on your OS
<sortie>
And I mean, obviously you gotta port them to your new weird APIs if you use those
<heat_>
you either provide best-effort POSIX emulation, or you send code upstream to abstract stuff (and that has a cost too, for the project)
<sortie>
But like binutils and gcc more or less just nee a hint of sub process stuff to spawn the compilation pipeline and do some IO
<sortie>
Easy
<sham1>
So my progress would basically have to involve either writing a compiler/a new language and then use either of those for the OS and such, but that'd take a while
<heat_>
oh, something i really do think should be done in userspace: network filesystems
<nortti>
sham1: there're more easily portable C compiler stacks too, e.g. cproc + qbe
<nortti>
worse codegen, but probably at least comparable to whatever you'd come up with yourself
<heat_>
tangentially related: most software out there really is written for linux
<sham1>
That it is
<heat_>
which is why even larger systems like the BSDs have linux emulation
<heat_>
and i don't think this is necessarily awful, because linux is more or less on the forefront of UNIX-like systems
Bonstra has quit [Quit: Pouf c'est tout !]
<heat_>
sham1, oh also last i checked llvm has a nice abstraction layer where you provide your code
<heat_>
clang/llvm definitely don't assume POSIX, they can run on top of win32
Bonstra has joined #osdev
goliath has joined #osdev
<sham1>
My problem with POSIX is just that it feels dull. That's just a me-thing
<heat_>
POSIX is definitely dull
<heat_>
the power of dullness is that it works everywhere :)
<sham1>
Like the API is fine. Not great but fine, but y'know, if I for example did that, it'd be yet another UNIX-ljke
<sortie>
sham1, computing getting out of the way to get stuff done? :D
<heat_>
yes, i understand your point, but you're missing a lot of nuance there
<sortie>
I mean files aren't that exciting
<heat_>
like sortix and onyx are very different systems, both UNIX like, and if you restrict yourself to POSIX you won't find many (observable) differences
<heat_>
but e.g posix gives you 3 syscalls to read files, linux has... like 8 + flag variations?
Turn_Left has quit [Ping timeout: 256 seconds]
<heat_>
posix gives you pipes, linux can let you pipe files into other files or pipes or sockets
<Ermine>
nortti: "hybrid kernel" is too vague to really communicate much <-- tbh same goes for microkernels, since there's many variations
<heat_>
right, it's hilarious when NT or XNU describe themselves as microkernel
<Ermine>
Do they?
<heat_>
yes they have done that several times
<heat_>
it depends on who you ask
<sham1>
Sure, if you augment things on top of the basic POSIX substrate, you can of course do cool things, but then again, what sorts of things could one do so one doesn't *just* get an uncanny Linux, as one could say
<Ermine>
you can do things to get uncanny freebsd
<sham1>
I mean, even ostensibly different feeling POSIXy hobby OSdev systems like SerenityOS have that sort of an odd feeling to them
sbalmos has quit [Ping timeout: 276 seconds]
sbalmos has joined #osdev
<heat_>
sham1, define uncanny linux
<nikolar>
Onyx
<heat_>
i say my kernel is uncanny linux because the design (of the API and the code itself) is extensively informed by linux
<Ermine>
likewise minix is uncanny netbsd
<heat_>
that's probably true from the user PoV, but not in the kernel (i think?)
<Ermine>
well, yes
* nortti
. o O (running netbsd kernel as a server, like the 4.2bsd-on-mach design of osf/1)
<Ermine>
I've got your point
<heat_>
from the user PoV most unices are probably very very similar
<heat_>
shell + bunch of core utils + maybe an Xorg/wayland server
<nikolar>
You could run netbsd kernel in userspace to use it's drivers
<heat_>
RUMP!
<nikolar>
RUMP indeed
<Ermine>
RUM
<heat_>
argh pirate indeed
<heat_>
OR
<heat_>
TURK ROME EMPIRE SULTAN CAESAR
<heat_>
something that does interest me is multi-subsystem operating systems
<heat_>
where win32 or posix or whatever are just subsystems, and the backend is generic enough to support them all
<Ermine>
The Multiverse is a concept about which we know frighteningly little
<nikolar>
That seems like an interesting thing to try
<nikolar>
heat_: we don't need to hear your historical fanfic
Arthuria has joined #osdev
<heat_>
nt tried it, it didn't work
<Ermine>
genode genode genode
<heat_>
anyway UNIX IS HOT SHIT GUYS, PEAK TECHNOLOGY
<heat_>
WHAT IF U HAD FILE, AND FILE DID REA D AND WRIT EIN PLAIN TEXT
<heat_>
AND THEN EVERYTHING IS FILE
<heat_>
PROCESS PIPELINE USING SHELL AND PIPE; PIPE ALSO FILE
<Ermine>
I'd write a unix-like system not because I like unix, but because designing something better requires way too much expertise
<nikolar>
Kek
Goodbye_Vincent has quit [Quit: ]
<heat_>
you can totes design something "better" if you want
<heat_>
and i mean *you*, not unixlover69
Goodbye_Vincent has joined #osdev
* kof123
skims backlog > people had a habit of puffing air points at NES
<nortti>
plan69lover
<Ermine>
Nah, I'm too dumb for this
<nikolar>
Plan9 is also cool
<heat_>
it turns out plan69 was started by unixlover69 all along
<nikolar>
Kek
<heat_>
Ermine, no you're not lol
<sham1>
Plan9 is just UNIX but more
leon has quit [Quit: see you later, alligator]
<heat_>
don't confuse lack of experience with dumbness
<heat_>
all IPC methods can be approximated with pipes, and thus most IPC relationships can be expressed using a UNIX shell pipeline
Arthuria has quit [Ping timeout: 268 seconds]
<heat_>
watch me build a UNIX microkernel using /bin/sh
leon has joined #osdev
<kof123>
what about es?
SunClonus has joined #osdev
<kof123>
if a shell can't rewrite what a pipeline means, what good is it ? -- ghost of story of mel
SunClonus has quit [Client Quit]
<nikolar>
What
<kof123>
*rewrite what a pipeline means within its own little world better?
<kof123>
that's part of the higher order functions in your shell, pipelines are a function call lol
ramenu_ has quit [Remote host closed the connection]
LittleFox has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
LittleFox has joined #osdev
SunClonus has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 272 seconds]
Left_Turn has quit [Remote host closed the connection]
heat_ has quit [Remote host closed the connection]
heat_ has joined #osdev
zetef has joined #osdev
zetef has quit [Remote host closed the connection]
<nikolar>
zid that's unfortunate
SunClonus has quit [Quit: Leaving]
xenos1984 has quit [Ping timeout: 268 seconds]
ramenu has joined #osdev
<vdamewood>
I'm curious what the non-English text says.
<vdamewood>
Okay, after trying to read it, I'm pretty sure it's Arabic, but I have no idea what the words mean.
ramenu has quit [Remote host closed the connection]
ramenu has joined #osdev
ramenu has quit [Read error: Connection reset by peer]
<vdamewood>
The translation is accurate.
<vdamewood>
... Dafuq.
<nortti>
does the verb only mean download/upload, or does it have other meanings too?
<zid>
wouldn't surprise me if they just reused get/send verbs for internetting
<zid>
(we reused load afterall)
leon has quit [Quit: see you later, alligator]
leon has joined #osdev
ramenu has joined #osdev
gxt has quit [Ping timeout: 255 seconds]
<kof123>
no double dipping </sort ie seinfeld>
gxt has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
<vdamewood>
The way Arabic works, they can actually 'make up' new words using Arabic grammar.
<zid>
language*
<zid>
all words are made up in all languages
Maja has joined #osdev
<vdamewood>
As for the words having other meanings, I have a classical dictionary I could look them up in. But looking up Arabic words can be a pain in the ass sometimes.
<vdamewood>
For example, if you were to look up 'akbar' in a dictionary, it would be hunder K, not A. (or rather the arabic equivalents)
Brnocrist has quit [Ping timeout: 252 seconds]
Brnocrist has joined #osdev
sortie has quit [Ping timeout: 256 seconds]
Arthuria has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
netbsduser` has joined #osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<netbsduser`>
sham1: about the "boringness" of posix: i think it is simply that you, along with many others, know it so well
<netbsduser`>
and of course posix itself isn't overly imposing either in terms of dictating implementation strategy, it couldn't be
divine has quit [Quit: Lost terminal]
<sham1>
Well of course
<mjg>
s in posix stands for "sucks"
<netbsduser`>
even if you want to provide a proper UNIX interface and not bare minimum posix requirements (which startle everyone in their laxness) you have considerable latitude to do your own thing inside the kernel
<heat_>
pid_t vfork(void) { /* fork() is now optimal */ return fork(); }
<nortti>
is fork required for posix? aiui they added posix_spawn as a vfork replacement for mmu-less systems, so they do seem to consider stuff that can't do proper fork not fully out of scope
<heat_>
yes fork is required i'm pretty sure
frkzoid has quit [Ping timeout: 260 seconds]
<nortti>
yeah looks to be part of base
<mjg>
excuse me
<mjg>
who tf cares about posix compliance *today*
<mjg>
asking for a friend
<nortti>
also, lol, "IEEE Std 1003.1-1988 neglected to require concurrent execution of the parent and child of fork()."
<netbsduser`>
mjg: there are some people who claim they only write pure ISO C which is also somehow POSIX compliant
<zid>
just never use dlsym
<zid>
and you're gtg
<netbsduser`>
it's easier if you are just writing trifling programs
<zid>
and remember to fseek between reads and writes
<heat_>
mjg, musl and the posix people
<nortti>
I care because I like looking for the worst possible technically permissible implementations
<heat_>
red hat has some guy that does posix stuff, i don't know why
<netbsduser`>
i've heard musl has a quite anti unix attitude
<netbsduser`>
they don't like anything that's an "extension"
<heat_>
yes
<netbsduser`>
this seems to be a common refuge for people who hate the GNU
<heat_>
i love the gnu compiler collection and the gnu c library and the gnu social
<zid>
but not the gnu hurd?
<netbsduser`>
i like the GNU stuff because it will run on anything, they are the kings of portability]
<nortti>
reading the rationale of posix_spawn, looks like you're expected to implement fork() using swapping if you don't have MMU
<nortti>
which, fair enough I guess
<heat_>
>fair enough
<heat_>
lmfao
<netbsduser`>
i tried to run bash with virtually nothing implemented and it ran, never mind that e.g. read() would return an error every time you tried to read but you had no data available
<netbsduser`>
nortti: how considerate of them, they left the door open for unix on pdp-11s to become posix compliant
<nortti>
trying to make an MMU-less system fully posix compliant
<nikolar>
netbsduser` most pdp11s had an mmu
<heat_>
well, nothing stops you from a nommu posix system except fork()
<heat_>
so the result of "implement this with swapping" ends up being "posix is irrelevant"
<nortti>
right
<netbsduser`>
posix_spawn() i can only speculate they added because fork() is still obnoxious in that you have to wrangle your page tables and issue shootdowns only to likely end up exec()'ing a new program anyway
<heat_>
posix_spawn is "portable" vfork
<heat_>
well, more versatile too
<heat_>
more like a portable clone() lets say
<heat_>
i know netbsd has a syscall, linux does it in userspace
<nortti>
hm, interesting, later on it has "A system with posix_spawn() and posix_spawnp() and without fork() should be useful, at least for realtime applications."
<heat_>
POSIX is so useless
<netbsduser`>
as regards the claim earlier about XNU as microkernel (i am catching up on the logs): the nextstep usenet FAQ states next mach is a microkernel, quote, "which means it is extensible at runtime"
<netbsduser`>
they add the proviso: "Micro kernel often stands for a small kernel size, too, but due to the compatibility to BSD 4.3 Mach is currently about 1MB in size."
<zid>
Mine is.. 14MB
<netbsduser`>
that's due to compatibility to (read: it contains most of) a linux kernel
<heat_>
your linux kernel is linux kernel compliant
<zid>
til my linux kernel is linux compatible
<nortti>
< heat_> well, nothing stops you from a nommu posix system except fork() ← looks like memory protection is mandatory in posix 2017, actually
<zid>
who uses modern versions of posix though
<heat_>
is it?
<heat_>
the mprotect language is remarkably vague
<heat_>
it's like "if you don't have PROT_WRITE it may or may not let you write"
<heat_>
oh sorry, it mentions PROT_WRITE explicitly
<zid>
"don't be upset if you get a fault if you write to something without PROT_WRITE"
<zid>
*shocked pikachu*
<heat_>
"An implementation may permit accesses other than those specified by prot; however, no implementation shall permit a write to succeed where PROT_WRITE has not been set or shall permit any access where PROT_NONE alone has been set. "
Arthuria has quit [Ping timeout: 240 seconds]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<gog>
hi
<nikolapdp>
hello gog
sortie has joined #osdev
gbowne1 has joined #osdev
sortie has quit [Ping timeout: 268 seconds]
SunClonus has joined #osdev
SunClonus has quit [Client Quit]
randm has quit [Remote host closed the connection]
randm has joined #osdev
<geist>
nortti: nah the gigatron isn't doing anything but blinking it's lights
<nikolapdp>
BLINKENLIGHTS
<heat_>
blinkenlighten
<heat_>
so
<heat_>
i can't find the bug that's making IO hang
sortie has joined #osdev
<zid>
keep removing locks until it stops
<nikolapdp>
and when the heisenbugs start showing up, you know you're on the right track
<zid>
just ignore data corruption
<zid>
as long as the hangs are gone that's a successful bisection
<heat_>
ohmy god i feel fucking stupid
<heat_>
wait no i dont
<heat_>
i thought i had figured it out, but i didn't
<zid>
that's the heat we know
* adder
howls
<adder>
Jo napot, zid.
<zid>
Are you serbing me
netbsduser` has quit [Ping timeout: 255 seconds]
<zid>
I'll call the police
<nortti>
nem, ő magyarozi titeket
<zid>
no, something magyar something
<zid>
no i'm hungarianing you?
<nortti>
s/i\b/ott/ whoops
<nortti>
but 'no, they hungarianed you'
<zid>
ah close enough
<zid>
not a bad guess just from seeing 'magyarozi'
<adder>
Yes, very intelligent.
<zid>
ich desu britozi
<nortti>
what language is "britozi"?
<zid>
english but you say "aye"
<zid>
and "ken"
<adder>
Seems Bulgarian to me.
<zid>
What's england in serbo
<adder>
Engleska
<zid>
boring, I was hoping it'd be some insult or something
<zid>
serbia is close enough to greece that *maybe* some random tribe did at some point :P
<nikolapdp>
kek
<nikolar>
zid: england in greek is just Αγγλία though
<zid>
"Albion is an alternative name for Great Britain. The oldest attestation of the toponym comes from the Greek language. "
<zid>
same pie root as albania
<zid>
'the important place where the important people live'
<nikolapdp>
zid do you really want to be put in the same camp as albanians
<zid>
What's serbia's starting general's stats?
<adder>
What's a starting general?
<nikolapdp>
eu4
<nikolapdp>
i mean skenderbeg was serbian so still coutns
<adder>
Ah, like the bonehead that started it off.
<heat_>
omg i fucking fixed it
<zid>
nikolapdp when are we playing eu4 co-op multiplayer
<zid>
wait no, you're still reading honzuki
<zid>
so not until after that at least
<heat_>
check this shit out: why were my submitted IO requests never finished?
<zid>
you never submitted them
<heat_>
YES[*]
<zid>
test issue, or the kernel just silently dropped them issue?
<nikolapdp>
zid: i actually have all the dlcs, or had i don't remember if i've bought the last couple
<heat_>
*because at some point i was filling the hardware submission queue, and after those requests were completed i forgot to kick them off again
<heat_>
kick the queue off, that is
<zid>
I am missing a couple of years worth, but I don't mind playing whatever set so who cares
<zid>
as long as AoW is installed
<nikolapdp>
yeah that's fine
<heat_>
this was only visible when lots of IO was submitted in a burst, asynchronously. which atm in my kernel is quite new and limited to page writeback
<heat_>
and because the nvme queues are like 128 or 256 deep in QEMU, i hadn't hit the limit before
Gooberpatrol_66 has joined #osdev
<adder>
Is MINIX3 the peak of kernel engineering?
<zid>
no, onyx is
<nikolapdp>
no, SOLARIS is
<heat_>
name a kernel with C++ support
<zid>
pass
<heat_>
(nt and zircon don't count)
<nikolapdp>
why would you want cpp support in your kernel
<zid>
showing off
<heat_>
it's useful sometimes
<zid>
"haha my kernel runs befunge"
<nikolapdp>
lol
<heat_>
also can we admire how c++ stole cpp from C
<nikolapdp>
yeah unfortunately
<adder>
I suggest we admire Stroustrup's cut.
<nikolapdp>
cpp also uses cpp btw
<zid>
They hate that
<zid>
OMG YOU CAN'T USE A MACRO
<zid>
!!!
<nikolapdp>
they are still stuck with it whether they like it or not
<heat_>
c++ has module support now
<heat_>
allegedly, because i haven't seen a complete implementation of it yet
<nikolapdp>
oh i wonder how horrible it is
<nikolapdp>
heat_ is it in c++20 or still in draft
<heat_>
c++20
<zid>
I'm in a gcc channel they mention it every now and then
<zid>
mainly about how it doesn't work
<nikolapdp>
lol
<heat_>
yep, ironically the only complete implementation is msvc's
<Ermine>
c++++c
<heat_>
they're getting beat by *msfuckingvc*
<Ermine>
c+++++c
<nikolapdp>
heat_ no way
<zid>
the fact that c+++++c is not valid is a glaring defect with C btw
<nikolapdp>
msvc doing something better than clang or gcc
<heat_>
ikr
<zid>
parser is defined to be greedy so it parses as ++ ++ + instead of ++ + ++, what a crok of shit language
Matt|home has joined #osdev
<nikolapdp>
zid what would you want it to do
<nikolapdp>
oh that's what you meant
<heat_>
c++++ should compile too
<zid>
how
<heat_>
c += 2
<nikolapdp>
as a double increment?
<heat_>
yes
<zid>
hard disagree
<nikolapdp>
yeah
<zid>
it violates a bunch of very beautiful rules
<heat_>
then when parsing c+++++c you <REDACTED>
<nikolapdp>
kek
<zid>
heat has no concept of a language that has rules and sticks to them though
<zid>
C++ every 2 years "new language who dis?
<nikolapdp>
lol basically
<heat_>
that's NOT true
<zid>
You're using C++2018? You *disgust* me!
<zid>
How *dare* you do such a thing
<heat_>
C++ has been stuck in the functional fad for 10+ years
<zid>
It's a GARBAGE LANGUAGE nobody should EVER use
<zid>
^ Normally adjusted C++ user
<nikolapdp>
C for the win
<zid>
every version is garbage and we know it, woo, but it's consistent garbage that we know how to work around some of the time!
<nikolapdp>
yes
<heat_>
yes, C, the perfect language
<zid>
Because why would a language need a way to know how big an array is
<nikolapdp>
you've got variables for that
<zid>
or a system's language want to know the endian of the compiler
<zid>
systems
<nikolapdp>
isn't there a preprocessor macro for that
<nikolapdp>
or is that an extension
<zid>
no
<zid>
you fucking wish lol
<nikolapdp>
lol i vaguely remember something like that existing
<heat_>
that exists
<heat_>
in C++20
<heat_>
lmfao
<nikolapdp>
lol no before c++20
<heat_>
there's a macro for it but it's 100% a GCC extension
<nikolapdp>
yeah that's probably what i was thinking
<zid>
It's also like, really hard to write one
<zid>
because you need to use some storage up to do so
<zid>
and test against it
<zid>
which macros aren't.. greatat
<heat_>
write what?
<zid>
A MACRO
* geist
is trying to figure out what thei conversation is about
<heat_>
oh you mean writing a macro using standard C?
<nikolapdp>
zid at least when you're writing an os you can hardcode for each arch you supprot
<zid>
nikolapdp: thankfully
<nikolapdp>
or make a config option for biendian atchs
<heat_>
constexpr static auto v = {'A', 'B', 'C', 'D'};
<heat_>
auto m = v | std::views::enumerate | std::ranges::to<std::map>();
<heat_>
this is valid C++20 btw, not gibberish, and not haskell
<zid>
cus C++ doesn't like operators to mean anything
<nikolapdp>
thta just feels wrong
<zid>
"What does | mean?" "It's a surprise!"
<heat_>
| meaning pipe is actually not the worst
<heat_>
they could've picked fucking &
<heat_>
or >> AGAIN
<nikolapdp>
lol good old streams in cpp
<geist>
maybe they picked >> specifically so that you wouldn't try to mix it with streams?
<zid>
pure streams based networking
<geist>
er didnt pick >>
<heat_>
yeah, thankfully
<heat_>
with auto going around these days you can't know what a type is anyway
<heat_>
ok STREAMS vs C++ streams: fight
<zid>
n3042 is amazing btw
<zid>
It gives several reasons why NULL being both int and void * can be a huge issue
<geist>
i doubt anyone here has ever worked with STREAMS
<geist>
and that'd be fine
<nikolapdp>
heat_ you're a cpp guy here, what's your opinoin on cout << "HELLO" << endl;
<heat_>
nullptr? sgtm
<heat_>
nikolapdp, i'm one of the least C++ C++ guys ever
<zid>
then fails to recognise *that the problem is with NULL being an integer*
<geist>
the only thing i really like about the iostream stuff is that you can pipe an object into it and if you define it get a nice pretty print of the object
<nikolapdp>
lol
<geist>
like lots of other languages
<zid>
just add yourself a FRIEND CLASS
<nortti>
they did try to make implementations force NULL to be (void*)0, which utterly failed, didn't they?
<heat_>
yeah, but std::print has that too I think
<zid>
nortti: no idea
<heat_>
and technically glibc supports custom formatters for printf, if you're into that
<geist>
heat_: hmm, can that interop with printf?
Left_Turn has joined #osdev
<heat_>
geist, wdym interop?
<nortti>
funnily enough, I think you can't have NULL be (void*)0 in c++
<zid>
heat_: I'm super into that
<geist>
yah we added at least one to zircon, but not a 'take a functor that gives me characters' style extension
<bslsk05>
www.gnu.org: Customizing Printf (The GNU C Library)
<geist>
main problem i've found with extending printf stuff is it breaks warnings in modern compilers, and printf formatting warnings are hecka useful
<heat_>
btw geist what did you mean with std::print interoping with printf?
<geist>
i dunno std::print
<geist>
what i means is is there some sort of mechanism like
<geist>
pritntf("%XXX", std::print(myobject));
<geist>
seems like to interop with printf you need to really return some sort of std::function like thing that printf then calls to pull char at a time out
Turn_Left has joined #osdev
<geist>
to avoid any temporary strings
<geist>
but even then that's a mess
<heat_>
you could do that with, say printf("%s", std::format("{}", myobject)) * i think *
<geist>
so then the obvious question is where does the memory for the temp string come from?
<geist>
obviously that works for things like std::string.c_str(); but that's because it already has it
<geist>
ah O2 is a bit better, but still had to construct an entire std::string and then delete it afterwards
<heat_>
one would hope the COMDAT cleans those (data tables?) up
<geist>
so now the question is what do you need to implement on a class/struct to play with std::format.... /me tries to figure it out the hard way, without docs
<geist>
oh wiw there's this whole class you fill out
<geist>
std::formatter
<heat_>
btw std::format is in C++20, std::print is C++23
<heat_>
they fucked it up and added std::format without print, so you had to do std::cout << std::format(...)
<nikolapdp>
D
<nikolapdp>
lol how do you mess up that badly
<heat_>
average programming language committee
<nikolapdp>
true that
<geist>
okay this already sucks enough that i'm uninterested
<geist>
looks like you have to emit a fairly large chunk to implement the parser for it
<nikolapdp>
that just sounds like a chore
<geist>
possible in the real world you can just subclass something that exists, but it seems you need to implement a std::formatter template variant that implements parse() and format() which does some iterator stuff
<geist>
makes sense i guess, because presumably the model is it calls it again and again one character at a time, and expects you to put the state there