<mjg>
years ago i decided to check out a c programming group on linkedin
<mjg>
and ran into the most retarded thread ever
<mjg>
with a total geezer on top of it
<heat>
dang i didn't know linkedin hosted openbsd tech-kern meetings
<mjg>
someone was asking how to write a function which takes an arbitrary number of arguments
<heat>
easy
<heat>
void foo()
<heat>
Next!
<mjg>
someone mentioned maybe take an array or use fucken' var_arg fuckery
<zid>
void foo(void);
<mjg>
person asking was adamant none of this is applicable
<zid>
how many times, old man
<mjg>
there are supposedly callers liek func(a, b); and func(a, b, c); and so on
<mjg>
and this has to work
<mjg>
so dude said that's ome bullshit
<mjg>
and here is where the geezer comes in
<mjg>
geezer said there is liek 0 problem here, but you have to implement it in assembly
<heat>
i like the void func(); idea
<mjg>
after few more posts twat posted a lol sample which blindly pops 4 args
<heat>
and then implementation just takes a bunch of parameters
<heat>
whatever happens happens
<zid>
fair
<zid>
void kernel();
<zid>
sometimes it takes an e820, sometimes it takes a pci-e base address, sometimes command line args
rpnx has quit [Quit: My laptop has gone to sleep.]
rpnx has joined #osdev
<mcrod>
hi
<moon-child>
hi
<geist>
zid: why void? maybe it wants to return an int
<geist>
kernel() { get it dun; }
<geist>
K&R ftw
<zid>
geist: a bsd kernel defintionally can definitionally produce no value
<zid>
I forgor what I was typing
<geist>
dont limit yourself man. EXPAND YOUR MIND
<zid>
BSD is like haskell
<zid>
your cpu gets hot, but no useful work gets done
<geist>
cpu gets hot. haha you kids and your CMOS way of thinking
<geist>
back in my day the cpu was just hot all the time!
<mcrod>
yay, my library is almost fucking done
<mcrod>
now it just needs CI and a windows test, then we're off to the races
<heat>
that's great
<heat>
now write an operating system
<heat>
call me when you're finished
<heat>
geist, were longs a thing in early K&R C?
<heat>
i'm thinking that maybe int was just assumed as the native word size
<heat>
so default int makes sense from an assembly perspective
pretty_dumm_guy has quit [Ping timeout: 245 seconds]
<zid>
default int makes the most sense, it's the 'default' part that doesn't
<zid>
because as we know *now*, missing decs are.. a problem
<zid>
in that system
<geist>
heat: yeah i think so
<heat>
int does not make the most sense if it's not designed as the native word type
<geist>
right but then of course with modern 64bit machines, etc there aren't enough types to fill in the gaps
<heat>
a more sensible choice in 2023 would be unsigned long as a default
<geist>
but also most modern 64bit machines also 'natively' let you do 32bit ops
<geist>
ie, no loss of speed for 32bit vs 64bit
<geist>
(vs 16 or 8 wher eyou might have to do extra instructions)
<heat>
but maybe the idea was char -> byte, short -> possibly shorter than native, int -> native, long -> possibly longer than native
<zid>
except you're trying to patch over a problem by making the problem less bad
<zid>
rather than doing what was both done, and is correct, removing implicit decs
<heat>
well, i'm not trying to patch over any problem, just trying to understand what the original idea was
FreeFull has joined #osdev
<geist>
yeah, i think at the time something like a 64bit machine was a bit of a pie in the sky
Arthuria has joined #osdev
<zid>
It is a strange concept, to be fair
<geist>
gotta remember this was like mid 70s
<zid>
a machine with registers so large that you in most cases, use the special 'make it smaller' prefixes
<geist>
like, shit this was pretty great
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
edr has quit [Quit: Leaving]
ThinkT510 has quit [Ping timeout: 268 seconds]
ThinkT510 has joined #osdev
heat has quit [Ping timeout: 252 seconds]
ppmathis has quit [Server closed connection]
ppmathis has joined #osdev
vilya has joined #osdev
kof123 has quit [*.net *.split]
kof123 has joined #osdev
vdamewood has joined #osdev
mctpyt has joined #osdev
gbowne1 has quit [Read error: Connection reset by peer]
Arthuria has quit [Remote host closed the connection]
<immibis>
delete short/int/long and use explicit sizes
stefanct has quit [Server closed connection]
stefanct has joined #osdev
eck has quit [Ping timeout: 255 seconds]
eck has joined #osdev
Gooberpatrol66 has quit [Quit: Leaving]
rpnx has quit [Quit: My laptop has gone to sleep.]
agent314 has quit [Ping timeout: 268 seconds]
err has quit [Server closed connection]
warlock has quit [Quit: Lost terminal]
[itchyjunk] has quit [Read error: Connection reset by peer]
mctpyt has quit [Ping timeout: 256 seconds]
<mjg>
introduce new names
<mjg>
how about mid -- 6 bytes
<mjg>
:X
<clever>
i have used int48_t in some example code i wrote
<clever>
because i was describing hardware that had a 48bit accumulator
<geist>
ah finally netbooted netbsd 3 on the vax server
goliath has joined #osdev
gog has quit [Remote host closed the connection]
puck has quit [Server closed connection]
puck has joined #osdev
<geist>
now i can get a proper disk image off of it by just dding the disks to the nfs root
<geist>
it has a pair of i think 380MB drives in it that have a copy of openvms
<geist>
used to apparently be used as a pair of machines in a vax cluster for a city
<geist>
was running some sort of city management software, probably mid 90s
<geist>
there's probably a way to grab a raw disk image in VMS but i dont know the magic for that
truepassion has quit [Server closed connection]
zetef has joined #osdev
xenos1984 has quit [Ping timeout: 260 seconds]
xenos1984 has joined #osdev
jjuran has quit [Ping timeout: 240 seconds]
jjuran has joined #osdev
jjuran_ has joined #osdev
jjuran has quit [Ping timeout: 256 seconds]
jjuran_ is now known as jjuran
netbsduser has joined #osdev
gog has joined #osdev
zetef has quit [Ping timeout: 246 seconds]
gildasio has quit [Ping timeout: 264 seconds]
gildasio has joined #osdev
zetef has joined #osdev
nuvls has quit [Server closed connection]
nuvls has joined #osdev
elastic_dog has quit [Ping timeout: 260 seconds]
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
elastic_dog has joined #osdev
bauen1 has quit [Ping timeout: 240 seconds]
zetef has quit [Ping timeout: 246 seconds]
zxrom has quit [Quit: Leaving]
[itchyjunk] has joined #osdev
lanodan has quit [Quit: WeeChat 4.0.4]
lanodan has joined #osdev
pretty_dumm_guy has joined #osdev
weinholt has quit [Server closed connection]
weinholt has joined #osdev
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<immibis>
i once 'imaged' my windows hard disk by opening the disk in HxD and then "save as" to a SMB file share
<immibis>
air quotes because there's probably some subtle corruption although you'd get that with any method of imaging a running system. same as sudden power loss i suppose
<immibis>
any naive method
brynet has quit [Quit: leaving]
brynet has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.5]
Gurkenglas has joined #osdev
edr has joined #osdev
<Gurkenglas>
Is there some OS that takes the form of a legible data streams going between processes/devices, perhaps displayed in the form of a graph, which I can manipulate such as by routing a stream through ~"tee data.log" or ~"grep -v $blockeduser"?
<Gurkenglas>
s/form of a/form of/
raggi has quit [Server closed connection]
raggi has joined #osdev
<immibis>
linux? without the pretty display
goliath has quit [Quit: SIGSEGV]
bauen1 has joined #osdev
Left_Turn has joined #osdev
pretty_dumm_guy has joined #osdev
Bonstra has quit [Server closed connection]
Bonstra has joined #osdev
<zid>
if there does, it'd be something google made, and it'd be protobufs :P
* gog
bufs
<zid>
English plural agreement is fucking weird btw
<zid>
"If there does exist a cow", do in plural, cow in singular. "cows do exist" -> cows in plural, do in singular.
<zid>
I assume this is a cruel prank of some kind
<zid>
and zero is plural.
<mjg>
the set of non-zero cows does exist
<mjg>
there
<mjg>
proudly stated as a non-native speaekr
pg12 has quit [Remote host closed the connection]
zaquest has quit [Remote host closed the connection]
CaptainIRS has quit [Read error: Connection reset by peer]
CaptainIRS1 has joined #osdev
Gooberpatrol66 has joined #osdev
* geist
yawns
Gooberpatrol_66 has joined #osdev
Gooberpatrol66 has quit [Ping timeout: 268 seconds]
elastic_dog has quit [Ping timeout: 256 seconds]
deckard has quit [Ping timeout: 252 seconds]
elastic_dog has joined #osdev
deckard has joined #osdev
agent314 has joined #osdev
agent314 has quit [Client Quit]
rustyy has quit [Quit: leaving]
linear_cannon has joined #osdev
bauen1 has quit [Ping timeout: 256 seconds]
leon has quit [Ping timeout: 260 seconds]
vilya has quit [Ping timeout: 268 seconds]
vilya has joined #osdev
leon has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
gbowne1 has joined #osdev
danlarkin has quit [Server closed connection]
danlarkin has joined #osdev
Gooberpatrol_66 has quit [Ping timeout: 268 seconds]
Turn_Left has joined #osdev
zetef has joined #osdev
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 268 seconds]
bauen1 has joined #osdev
zetef has quit [Ping timeout: 246 seconds]
zetef has joined #osdev
dude12312414 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
Gooberpatrol_66 has joined #osdev
goliath has quit [Ping timeout: 256 seconds]
Left_Turn has quit [Ping timeout: 256 seconds]
Left_Turn has joined #osdev
<zid>
mr. gurk was confidently incorrect there
deckard has quit [Quit: l8r]
deckard has joined #osdev
<Ermine>
Seems like desktop luniks kernal is busted on my work laptop
goliath has joined #osdev
<Ermine>
It stalled somewhere in the shutdown process
<zid>
>laptop >shutdown doesn't work
<zid>
that's 100% expected
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
goliath has quit [Ping timeout: 246 seconds]
<zid>
Hehe this is funny, read a small rant about OOP some guy wrote, and all the responses are angry people going "ofc OOP looks dumb if you only write small programs in it"
danilogondolfo has quit [Quit: Leaving]
muffin has joined #osdev
<mjg>
:]
<mjg>
klasik oop conundrum
<mjg>
oop makes everything easier
<mjg>
except turns out it notoriously does ot, in which case you are doing it wrong
<mjg>
but it was supposed to help?
<mjg>
:X
<mjg>
personally i like peolpe claiming they do functional programming
<mjg>
and by functional they mean procedural
<heat>
mjg, le uniks kernals have historically used oop
<mjg>
OH
<mjg>
you gonna call the SOLARIS vnode interface OOP?
<heat>
yep
<heat>
so is linukz's
<zid>
heat: Where my file class
<zid>
you're not allowed to only use paradigms where they're useful
<mjg>
in that case everyone is a oop programmer
<zid>
ALL MUST OOP
<heat>
it 100% is OOP
<mjg>
it 100% is OP
<zid>
is linux 100% oop?
<mjg>
:X
<heat>
they're not wrong for doing it, it's nice and works well
<heat>
zid, surprisingly lots of it
<mjg>
tell that to linus
<mjg>
:X
<heat>
he has said that before, so has greg
<mjg>
"oi bruv noice oop"
<zid>
by which presumably you mean, almost none of it?
<mjg>
he did?
<mjg>
wut
<heat>
they're aware that struct <insert name here> is basically a class with virtual functions, but in C
<mjg>
i think equating a table of func pointers to OOP is rather pushing it
<heat>
greg even said he sometimes wished for C++ :v
<mjg>
?:D
<mjg>
unix kernel devs are notorious for hating on c++
<mjg>
so i don't know mate
<zid>
I understand your philosophy now
<zid>
It is however, not a very useful one, sorr
<targetdisk>
#import <obj-c_header.h>
<moon-child>
guys I solved parallel make
<moon-child>
just do this for i in *.c; do cc -c $i& done; wait; cc -o shit *.o
<mjg>
wdym -o shit
<targetdisk>
elf shit
<zid>
That's what my makefiles all do already though
<targetdisk>
this is more fork-bomby
<zid>
all:\n\tfor i in *.c; ..
<mjg>
i just got a youtube video of some fucking guy saying he writes *everything* in c
<moon-child>
zid: oh shit
<moon-child>
u right
<mjg>
unsurprisingly code he had shown was bad
<moon-child>
then u can do make -j and ahve it be double parallel
<moon-child>
for twice the scalability
<heat>
i like your solution moon-child
<mjg>
run it on solaris and quadruple
<heat>
everything is parallelized and the scheduler does the -j
<targetdisk>
that makes me want to plug two of my laptop's USB-C ports togetner
<mjg>
are you for realzies heat
<targetdisk>
yes context switch and flush them cache lines
<targetdisk>
for extra parallel
<mjg>
where my O(n^2) scheduler at
<heat>
mjg, i'm 100% for realzies
<mjg>
lol
<heat>
weren't you saying bmake's pipe + poll was PESSIMAL
<heat>
there you go dumbass
<mjg>
mofson
<mjg>
lemme find it
<targetdisk>
look I just want a language server for the SDCC 8051 extensions