<mcrod>
it would not be considered "cool" by anyone in the corporate world
<mcrod>
if they find that cool and sick, god bless
<mcrod>
because that's _rare_
<heat>
it's static_assert before static_assert, it's pretty awesome
andydude has joined #osdev
<mcrod>
ok so, I think I almost have this CI pipeline down
<mcrod>
when build_toolchain.sh changes, rebuild the toolchain; provide fetch_toolchain.sh for lazy bastards like me to download and extract the appropriate toolchain artifact
<mcrod>
the nice thing about CMake presets is IDEs will just magically work, in theory
<mcrod>
all of the toolchain shit is instantly set up
<bnchs>
hi
<mcrod>
hi
<bnchs>
i'm currently stupid
<mcrod>
as are we
<bnchs>
because i can't implement a tree
<mcrod>
most people can't
<bnchs>
i spent
<bnchs>
months on trying to implement it
<mcrod>
ok that's bad.
<heat>
what kind of tree
<bnchs>
i told you i'm stupid
<mcrod>
the type where money grows on them
<heat>
what kind of tree benches
<bnchs>
heat: tree that grows money on
<bnchs>
so i can feed my family
<heat>
seriously though what tree
<bnchs>
uhh
<bnchs>
nah i'm too embarrased to say
<heat>
say it
<mcrod>
no one is going to judge you
terminalpusher has quit [Remote host closed the connection]
<heat>
ok i'll start: i can't implement any sort of binary tree to save my life
<bnchs>
it would be like "hahahaha you must be retarded bnchs for spending months on this shit"
<mcrod>
i'm about to call you retarded if you don't just tell us what tree
<heat>
i literally would need a copy of CLRS to write a rb tree impl
<mcrod>
nobody can just shit out a full working data structure entirely from memory
<bnchs>
mcrod: i am worthy of the title anyway
nj0rd_ has quit [Server closed connection]
<mcrod>
data structures are way, way too complicated
<morgan>
i've got 16 years of programming experience including lots of successful distributed-systems architecture work and i sure can't implement any kind of tree from memory lol
<heat>
well, depends, i can write many data structures, but not one of those
<mcrod>
a _really good hash table implementation_ is complex
nj0rd_ has joined #osdev
<heat>
lists are ez, hash tables are ez
<morgan>
i could prooooobably do a naive binary tree but why would you
<mcrod>
my favorite sorting algorithm is bucket sort, radix sort, etc
<morgan>
radix sort rules 'cause you can do it with punch cards
<heat>
oh yea i can't sort anything from memory
<heat>
oh radix trees! radix trees are fun
<mcrod>
I'm making an incredibly bold statement here
<mcrod>
but the ones who can write that shit from memory, are paradoxically some of the worst programmers I've ever known
<heat>
i have a blocker in my ext4 driver because I haven't bothered to figure out how to write to a btree on disk
<mcrod>
some people know data strucutres inside and out and sideways but probably couldn't write a full fledged program
<mcrod>
i do not understand it
<mcrod>
structures*
<morgan>
i mean specialization can be useful
<morgan>
i've definitely had times where i could have used the assistance of a Data Structures Guy
<mcrod>
right
<mcrod>
but I notice that a lot of the FAANGs and other bullshit, whatever it's called, focus almost entirely on data structures
<mcrod>
or stupid logic puzzles
<heat>
leetcodeee!
<mcrod>
understand what I say: data structures are obviously important and extremely fundamental
<mcrod>
also understand: someone who can write complicated ones from scratch is quite good at data structures, but that isn't fully comprehensive, if I'm being an elitist
<mcrod>
by far, the well rounded programmers I've ever known are the jack of all trades master of none type
<bnchs>
nice
<mcrod>
this is why I don't necessarily balk when people can't solve, as bizzare as it is, fizzbuzz
<mcrod>
thinking patterns are wildly different
<mcrod>
peope think a lot on super complicated problems but forget about the little tiny ones
<mcrod>
people
rnicholl1 has joined #osdev
<heat>
constexpr fizzbuzz
<mcrod>
i've met people at my job who can talk quite intelligently about system design but can't code their way out of a paper bag
<mcrod>
hell, even me, there's shit that I should know that I probably don't
<bnchs>
so uh
<mcrod>
yes
andydude has quit [Quit: Leaving.]
<mcrod>
bnchs i'm serious, i don't think most of us here are actually assholes.
<bnchs>
i'm scared
<heat>
wdym you cant implement a van Emde Boas tree from memory
bauen1 has quit [Ping timeout: 260 seconds]
FreeFull has quit []
andydude has joined #osdev
bauen1 has joined #osdev
pmaz has joined #osdev
<heat>
bnchs, what tree
<heat>
i already told you i can't write a red black tree for shit
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
q3lont has joined #osdev
<sham1>
Cat tax
frkazoid333 has quit [Ping timeout: 260 seconds]
heat has joined #osdev
heat_ has quit [Read error: Connection reset by peer]
q3lont has quit [Read error: Connection reset by peer]
q3lont has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
sbalmos has quit [Ping timeout: 265 seconds]
andydude has quit [Ping timeout: 265 seconds]
q3lont has quit [Read error: Connection reset by peer]
q3lont has joined #osdev
slidercrank has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
q3lont has quit [Ping timeout: 240 seconds]
goliath has joined #osdev
bgs has quit [Remote host closed the connection]
pmaz has joined #osdev
<kof123>
conway's law. tree writes you (if all you do is data structures, for better and worse, will seep into your soul. and vice versa if only do higher-level stuff)
GeDaMo has joined #osdev
q3lont has joined #osdev
slidercrank has quit [Ping timeout: 240 seconds]
rnicholl1 has joined #osdev
LittleFox has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
LittleFox has joined #osdev
LittleFox has quit [Remote host closed the connection]
LittleFox has joined #osdev
LittleFox has quit [Remote host closed the connection]
danilogondolfo has joined #osdev
LittleFox has joined #osdev
rnicholl1 has quit [Ping timeout: 255 seconds]
q3lont has quit [Ping timeout: 240 seconds]
q3lont has joined #osdev
gxt__ has quit [Remote host closed the connection]
gxt__ has joined #osdev
q3lont has quit [Ping timeout: 240 seconds]
Affliction has quit [Quit: Read error: Connection reset by beer]
Affliction has joined #osdev
slidercrank has joined #osdev
osmten has quit [Ping timeout: 245 seconds]
slidercrank has quit [Read error: Connection reset by peer]
slidercrank has joined #osdev
crankslider has joined #osdev
slidercrank has quit [Read error: Connection reset by peer]
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
crankslider is now known as slidercrank
q3lont has joined #osdev
q3lont has quit [Read error: Connection reset by peer]
gog has joined #osdev
awita has joined #osdev
q3lont has joined #osdev
q3lont has quit [Remote host closed the connection]
q3lont has joined #osdev
mjg has joined #osdev
awita has quit [Ping timeout: 240 seconds]
Left_Turn has joined #osdev
nyah has joined #osdev
osmten has joined #osdev
<gog>
good meowning
awita has joined #osdev
<jimbzy>
Sup?
<zid>
It's too warm for mornings
<gog>
oh it's gym time
<gog>
byeee
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 240 seconds]
awita has quit [Ping timeout: 240 seconds]
q3lont has quit [Remote host closed the connection]
q3lont has joined #osdev
pmaz has quit [Quit: Konversation terminated!]
gareppa has joined #osdev
<zid>
oh, rspca lady is here, bye jigsaw
q3lont has quit [Remote host closed the connection]
q3lont has joined #osdev
SGautam has joined #osdev
<zid>
was chipped 18 years ago(!), 6 miles away
<zid>
registered phone number no longer connects
<GeDaMo>
:(
<zid>
she's going to drive him over and knock, if nobody there/new owner, she'll just take him straight to the vet
<mjg>
gog: are you going to a "real" gym?
<mjg>
gog: i'm curious what's the "tik tok" situation over there
<sham1>
A real gym as opposed to a fake gym?
<mjg>
real == not planet fitness
<mjg>
:d
<Ermine>
gog: may I pet you
awita has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 240 seconds]
q3lont has quit [Quit: Leaving]
heat has quit [Remote host closed the connection]
heat has joined #osdev
dutch has quit [Quit: WeeChat 3.8]
andydude has joined #osdev
edr has joined #osdev
Matt|home has joined #osdev
SGautam has quit [Ping timeout: 240 seconds]
dutch has joined #osdev
SGautam has joined #osdev
froggey has quit [Server closed connection]
froggey has joined #osdev
radens has quit [Quit: Connection closed for inactivity]
Matt|home has quit [Read error: Connection reset by peer]
Matt|home has joined #osdev
<PublicWiFi>
Anyone know of some high level abstract articles where I can learn more about kernels and OS and how interact?
<PublicWiFi>
I'm working on building a 8-bit kernel and OS for my z80 computer and I'm making sure I keep kernel things in the kernel and OS things in the OS
<bslsk05>
dmitryfrank.com: How I ended up writing a new real-time kernel [Dmitry Frank]
<zid>
You'd struggle to even have a distinction like that on an 8bit
<nortti>
it's about 16-bit and 32-bit microcontrollers, but they are at least closer to 8-bit micros than most modern systems
<PublicWiFi>
thanks nortti !
<PublicWiFi>
yeah you might be right zid
<PublicWiFi>
p much rn my kernel is mostly just drivers
<PublicWiFi>
trying to work on threading though haha
<PublicWiFi>
syscalls and etc for the OS
<PublicWiFi>
workin on a file system too so i can start treating stuff like files, *nix style lol
<zid>
You're going to have "the firmware bits" and "The thing you run that is user supplied" and they're going to be in the same address space at the same times, if you wanna provide useful routines for it you can do so
<zid>
but I'd never consider any of that a "kernel" or "OS"
<PublicWiFi>
well if I do paging they won't be in the same address space
<PublicWiFi>
or I can cut off my memory into 16KB sections
<zid>
paging on an 8bit is called bank switching :P
<PublicWiFi>
^
<PublicWiFi>
yup :D
<zid>
But that's besides the point
<zid>
The point is, I don't have to give control back, I don't have to do anything, and you can't make me, the user program is the OS if anybody is
<PublicWiFi>
I'm tryin to do a "real"-ish kernel with syscalls and such
<bnchs>
PublicWiFi: how does your kernel work? out of curosity :P
<PublicWiFi>
ohh i see haha
<PublicWiFi>
no protected mode, i got cha
Matt|home has quit [Read error: Connection reset by peer]
<zid>
and the "OS" just sees your code as something to steal routines from, or to bank switch away if possible
<PublicWiFi>
bnchs: right now? it's 99% drivers that init hardware haha
Matt|home has joined #osdev
<bnchs>
lol
<PublicWiFi>
all homebrew stuff so far
<PublicWiFi>
jsut got compact flash card working :D
<zid>
actual drivers, or just "I can bit bang them from some routines I wrote and do stuff"
<PublicWiFi>
right now bit banging, but I'm working on getting some dynamic driver loading working
<zid>
Like, at no point would I consider most micros to have any sort of drivers
<PublicWiFi>
so they can be loaded and parsed in memory
<klange>
what's the difference? [insert derp emote here]
* bnchs
thinks of some modular system of drivers
<zid>
I just think there's a jargon difference between what micros do and what operating systems do
<zid>
mostly predicated on wether rings/protection exist
<zid>
whether*
<PublicWiFi>
one guy got some protection running on a 6502 I think, or was it z80?
<zid>
You don't *have* to subsribe to my newsletter, but your knees might get sore
<PublicWiFi>
some clever stuff
<klange>
if you want protection on a z80, you write a VM
<klange>
like dmitry.gr who "ported" linux to an 8-bit AVR
heat_ has joined #osdev
<zid>
everything's a turing machine if you're brave enough
<klange>
the monkeys keep eating the tape
heat has quit [Ping timeout: 255 seconds]
<PublicWiFi>
lol
<bnchs>
OS-9 had a good design for a realtime OS, to be honest
<bnchs>
(here's me shilling this dumb OS)
<PublicWiFi>
xD
<gog>
mjg: what's a real gym
<gog>
oh
<gog>
idk it's real enough
<mjg>
so are there many people filming?
<gog>
i've never seen anybody
<mjg>
nice
<gog>
and idk about the tiktok situation, i don't use tiktok and i don't care
<gog>
Ermine: yes you may pet me
<mjg>
that's being in the 30s
<mjg>
;)
<gog>
haha probably
* Ermine
pets gog
* gog
prr
sbalmos has joined #osdev
<zid>
I think "the tiktok situation" is "people are assholes in gyms for tiktok"
<mjg>
^^
<mjg>
there is a phenomena were they will either steer up drama OR stage it with someone
<mjg>
to get views
<jimbzy>
If you want to make people uncomfortable just walk around without a cellphone.
<jimbzy>
Like, if you're ever in a waiting room with a bunch of people just sit there quietly and stare forward. It makes them uneasy af. XD
<zid>
woo red circuits
<zid>
I had to hand feed like 10 things, but it counts damnit
<sham1>
jimbzy: delete this
* jimbzy
mashes the delete key
* zid
deletes sham
<zid>
Did I do it right
energizer has quit [Server closed connection]
<sham1>
1
<gog>
i don't even bring my phone with me into the gym
energizer has joined #osdev
<gog>
i'm there to lift and run, not stare into the rectangle that gives me psychic damage
<mrvn>
gog: *gasp* You are not there to catch people gancing at you and getting all upset on tiktok?
<sham1>
So you don't listen to anything?
<gog>
no, no music either
* mjg
likes gog
leon has quit [Server closed connection]
<mrvn>
jimbzy: waving your hands slowly randomly and muttering every now and then helps too
<mjg>
gog: so how much do you lift mate
leon has joined #osdev
<gog>
not much lol
<mjg>
like 3 cats?
<mjg>
:X
<gog>
bench 40, 45 on a good day
<mjg>
that's kg or lbs
<gog>
kg
<sham1>
No music? How
<mrvn>
You know that tiktok gym meme started when the blind surfer was in the gym staring at a karen and she got all upset.
<mrvn>
right?
<gog>
he started that? i thought it was older than that, psure his video is from like a year ago
<mrvn>
at least he said so
<mjg>
it was a thing way prior
<gog>
idk he's a socia media influencer too so i'm hesitant to trust him
<gog>
at least in that respect
<mrvn>
either way, it happened to him. how dare he stare at someone.
<gog>
mrvn: people sometimes gawk at me wherever i go anyway
<gog>
so what's the difference if it's at the gym or not
<zid>
I can deadlift 800kg
<gog>
as long as they don't say shit to me it's fine
<mjg>
zid: i can squat on 1 ton
<gog>
deadlift i can do 60kg
<zid>
only 60kg deadlift? O_o
<Ermine>
gog: hiss at those people
<gog>
i'm not as strong as i look
<mrvn>
gog: the tight fitting and overly revealing cloth is the difference. Duh. If you don't want anyone to notice your curves then why aren't you wearing something less revealing?
<zid>
You look strong?
<zid>
STRONG GIRL, FARM?
<sham1>
Ermine: the idea is to have them stop, not to get more attention
<GeDaMo>
"Onoda spent 29 years hiding in the Philippines until his former commander travelled from Japan to formally relieve him from duty by order of Emperor Shōwa in 1974."
<heat_>
it realizes that those unsigned longs are only stored to under that condition, so it transforms all that into bools, and all accessess grow 2 imm64 mov and a cmov "branch"
<heat_>
it's horrific
gog has quit [Quit: Konversation terminated!]
<geist>
ah because all you ever write to the longs are 0x1?
<heat_>
no
<heat_>
i write actual values
<geist>
it probably still allocates a long (unless they're local)
<heat_>
nope
<geist>
oh interesting. are they local variables? (ie, local to the .c file?)
<heat_>
wait, no, i think they're still longs
<geist>
it seems like it *cant* if they're global
<geist>
unless... LTO!
<geist>
if it decides that nothing touches them i guess it could do that
<geist>
but that'd be odd. i wonder if it knows even if .S files touch it, stuff out of its compile domain
<heat_>
this decision is soooooooo stupid
<heat_>
it makes a 8-byte load into a 1-byte cmp + 2 imm64 mov + cmov
<heat_>
???
<heat_>
what exactly does it save here
<heat_>
like, it's pretty impressive it can see this far and reason about the program
<heat_>
but?
<heat_>
geist, also worth noting that it must know if other files can touch it, because the type of the variable effectively changes, and so do the semantics
<heat_>
i suspect it's the sort of codegen that performs really nicely on micro benchmarks but immediately falls apart as you consider things like ""icache""
<mjg>
> dword
<mjg>
gonna use it instead of word going forward
heat has joined #osdev
heat_ has quit [Read error: Connection reset by peer]
<sham1>
What are you, Intel?
<heat>
microsoft
<sham1>
Okay so Wintel
<zid>
intel is dead, we're all amd now
<zid>
all amd all the time
awita has joined #osdev
dutch has quit [Quit: WeeChat 3.8]
dutch has joined #osdev
q3lont has quit [Ping timeout: 240 seconds]
q3lont has joined #osdev
gog has joined #osdev
<Ermine>
Or Mintel?
<GeDaMo>
All that Glintels is not gold :|
<zid>
-Mamd
<zid>
-Mrustrustrust
<sham1>
Authentic
gmacd has joined #osdev
q3lont has quit [Ping timeout: 240 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<bslsk05>
moon-chilled/libeftpad - The best the JavaScript ecosystem has to offer, in C! (0 forks/4 stargazers)
eddof13 has quit [Remote host closed the connection]
<heat>
moon-child, the test sucks you don't even check the results
<heat>
you also don't test any value other than 5
eddof13 has joined #osdev
<heat>
also it's totally random that y[5] = '\0'
<heat>
so NAK
<heat>
wait, this is kind of subtly broken isn't it? "int pad" just represents the length of the string + null terminator, not the length of the string
dude12312414 has joined #osdev
awita has quit [Ping timeout: 240 seconds]
danilogondolfo has quit [Remote host closed the connection]
<sakasama>
moon-child: I'm disappointed. I expected a project of this quality would at least be available on npm.
<zid>
would it be a real leftpad if it wasn't subtly broken though
bauen1 has joined #osdev
gmacd has quit [Ping timeout: 240 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
sprock has quit [Ping timeout: 240 seconds]
gmacd has joined #osdev
sprock has joined #osdev
awita has joined #osdev
<mcrod>
i need a hug
* heat
gibes hog
HardWall has joined #osdev
slidercrank has quit [Ping timeout: 240 seconds]
* mcrod
hog
* sakasama
weeps for mcrod.
<Ermine>
gog: may I pet you
* sakasama
gogs Ermine.
* Ermine
hisses at sakasama
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
* sakasama
plays dead.
<gog>
hi
<gog>
Ermine: yes
* Ermine
pets gog
<mcrod>
gog: may I pet you too
<gog>
yes
* gog
pr
* mcrod
pets gog
* gog
prr
<bl4ckb0ne>
gog: do you want a pet
dza has joined #osdev
<gog>
yes
<gorgonical>
parrot or maybe a hedgehog?
<gog>
depends on the kind of parrot, but hedgehogs are also cool
gmacd has quit [Ping timeout: 240 seconds]
<gorgonical>
are there wild hedgehogs there?
<gog>
no
<gorgonical>
"wild" is such a strong word for such a small animal
<gorgonical>
I didn't think so
<gog>
the only indigenous mamal species are arctic foxes, walruses and seals i think
<gog>
all others have been introduced by humans
<zid>
I rarely see hedgehogs currently, there was a few year period where they were everywhere :(
<gog>
rats ofc because every ship ever is lousy with them
<gog>
and where you have rats humans bring cats
<zid>
humans bring cats*
<gorgonical>
the first time I was in Berlin I saw one at night on the sidewalk
<zid>
Fuck the wrens, CAT
<zid>
Germany has fucking wash bears
<gorgonical>
and until that point had not really understood that hedgehogs were real creatures
<zid>
why can't the UK have wash bears :(
<mrvn>
gorgonical: sonic
<gog>
i've seen a wild fox only once and it was in texas
<zid>
I hear a wild fox every few nights
<gog>
it was walking through a parking lot in the middle of amarillo
<mrvn>
Foxes are invading Berlin
<zid>
does that help
<zid>
And a fox ate my mother's chickens
gmacd has joined #osdev
<zid>
Dead foxes are everywhere, just drive literally anywhere
<zid>
you'll see a few
<gorgonical>
At a conference recently I was told that bears are returning to Europe and are bothering hikers again
<mrvn>
that's just fat shaming
<zid>
give it 50 more years and we might have french wash bears
<zid>
and then it's one short ferry trip for english wash bears
<gorgonical>
wait are you talking about raccoons
<gorgonical>
raccoons are such pests and nuisances
<gorgonical>
Someone once told me that chipmunks are quite the curiosity to Europeans because they aren't found there
<zid>
yea we have a billion types of stoat, mink, ferret, martin, etc though
<zid>
just not chipmunk
<zid>
(which is a type of marten I think?)
<gorgonical>
chipmunks are a rodent reasonably closely related to beavers and mice
<gorgonical>
which is to say they are squirrels
<zid>
ah no, it's a marmot, ofc
<zid>
squirrel family -> ground squirrels (marmots) -> chipmunk
<gorgonical>
this just made me realize that groundhogs are also in that family
<heat>
i had a stupid idea and started hacking on a C compiler
<zid>
smh american robins are obese
<heat>
why is this a horrible idea
<gorgonical>
Yeah but you guys don't have wolverines
<zid>
UK has very little tbh
<zid>
we shot them all
<zid>
Also no rabies
<zid>
(we shot all the dogs, too)
<Ermine>
bl4ckb0ne: add some laxative to its food, so it doesn't have time to run to strawberries
<gorgonical>
we should get rid of all the non-native mammals here and if people want pets we should have to keep deer or something like that as a pet
<bl4ckb0ne>
idk its not my cat
<zid>
gorgonical: no more horses then? rip
<bl4ckb0ne>
i think theres 2
<zid>
You get to have a pet camel though
<gorgonical>
zid: oh no what will the economy do without horses
<zid>
think of the glue prices
<gorgonical>
I could keep a raccoon as a pet. Some people already do
<zid>
:(
<zid>
JEALOUS
<zid>
You can ride your camel and pet your cat
<gorgonical>
they are apparently bad pets though
<zid>
What do we do about the fact that most of the native species in the US and UK are extinct
<zid>
and all the current ones are replacements
awita has quit [Ping timeout: 255 seconds]
<gorgonical>
we need to genetically engineer a third group
<gorgonical>
new indigenous animals, artisanal
<zid>
You ever hear people who get platic surgery for their "ideal body"?
<zid>
That's all a crock of shit, I've never once seen someone get plastic surgery to get 4 cocks and be 18 feet tall
<sakasama>
You could change that.
<zid>
make it so they don't need to poop, and can run 400mph
<zid>
no, what they get is like, smaller ears
<gorgonical>
that's right, be the change you want to see in the world zid
<zid>
idiots the lot of them
<morgan>
why stop at 4
<heat>
the more the merrier
<zid>
morgan is getting into the spirit of this
<morgan>
zid im a furry this is kind of like our whole thing
<zid>
pretty sure it isn't
<sakasama>
Oh no, don't mention furries to the zid.
<sakasama>
Unrelated: Is there any sanity in the competition between SystemVerilog and vhdl? I can't tell which I'm supposed to use at this point.
<gorgonical>
I was told recently by a professor that SystemVerilog is better and more productive
gmacd has joined #osdev
<morgan>
HDL is above my pay grade lol
<gorgonical>
But ultimately they are basically interchangeable at the professional level. He said the choice comes down a lot of the time to what the platform you're using supports
<gorgonical>
He said if you have a choice you should use Verilog. He also mentioned this anecdote about a conference hackathon thing where teams using either tried to implement some circuit in like two days. none of the vhdl people finished it and the systemverilog people did
<gorgonical>
Dunno how true that is lol
<morgan>
that sure does sound like an anecdote
<sakasama>
Who is he?
<gorgonical>
I should ask him again what the details were. He told me the conference but I've forgotten so digging through google will be basically impossible
<gorgonical>
He's a professor of embedded systems
* sakasama
nods.
<heat>
gog, hwats your full stack opinion
gmacd has quit [Ping timeout: 240 seconds]
<gorgonical>
He also mentioned that you could use SystemC instead
<gorgonical>
I didn't even know such a thing existed
<sakasama>
gorgonical: Yeah, I was looking at SystemC earlier, though I couldn't tell what the benefit of using it is.
<sakasama>
I've got some old code that generates vhdl for a xilinx fpga that I'm slowly repurposing, but haven't figured out exactly what I'm supposed to target.
Turn_Left has quit [Read error: Connection reset by peer]
[itchyjunk] has joined #osdev
eddof13 has joined #osdev
gmacd has quit [Ping timeout: 240 seconds]
<gorgonical>
can someone explain intuitively why we chose the phrase "linear address" or "linear ID" to refer to the physical, underlying one as a contrast to virtual or logical?
eddof13 has quit [Client Quit]
<zid>
It's linear
<zid>
and needs a name
<gorgonical>
it's strangely mathematical. The idea is "what's the formula for deriving the next ID/address?" "it's linear. x_next = x + 1" ?
<mrvn>
limar
<gorgonical>
That's the general idea?
<zid>
you're overthinking this
<nortti>
I'd guess there is also some x86 specific history here, where on 286 and older the user-facing addresses were very much not linear
<zid>
linear is just a word that means "line-like"
<gorgonical>
nortti: part of me suspects there's weird history embedded in it. It just doesn't intuitively make sense to equate linear and physical here
<zid>
who says it's physical?
<gorgonical>
for example, with numa domains cpu ids are very much not necessarily linearly numbered
<nortti>
even in a numa configuration, your physical address space is going to be linear, right, not segmented?
<gorgonical>
I don't know if that's true always. There could be holes, right?
<zid>
lines can have holes :P
<mrvn>
there are holes
<gorgonical>
then what's the point of linear as a term?
<nortti>
"not segmented"
<mrvn>
x_next = x + 1
<zid>
LINE LIKE
<gorgonical>
but it *is* segmented!
<zid>
It's not got curves
<zid>
or wormholes
<gorgonical>
but zid what would curves even mean in this context
<zid>
or subspaces to hell
<morgan>
or discontinuities, which i think is the important part
<nortti>
gorgonical: are you familiar with any actual segmented memory systems? like real-mode x86
<gorgonical>
I have a textbook familiarity and as much familiarity as you need to bring a kernel past that point on x86
<zid>
(real-mode x86 features the subspaces to hell version of memory)
<zid>
every memory address is representable with a fuck load of addresses
<gorgonical>
agreed, the idea that segment descriptors can retarget an address to some arbitrary spot in memory is hellish
<zid>
The mapping is very non-linear, infact
<zid>
it's like.. hyperbolic
<gorgonical>
so is the word a relic from the complex x86 segmented memory system? and would be considered technically irrelevant to e.g. arm or riscv that lack segment descriptors? I'm not trying to be pedantic either
<zid>
It's not a relic
<zid>
it's literally just the word that means "not funky"
<zid>
in english
<zid>
it's not jargon, or a metaphor
<zid>
or a relic of a bygone era
<zid>
it's just what the word means
<zid>
"The soldiers were arranged linearly"
<gorgonical>
Okay I can tolerate that idea. I was going to say that nowadays linear almost always can be read as physical in code or manuals with the flat aspace system most platforms have now. But that still contains an underlying assumption of linearity in them
<zid>
flat is *more* of a metaphor here
<gorgonical>
yes
<gorgonical>
flat as in non-segmented in x86
<zid>
flat and linear mean the same thing in the jargon, but flat is a metaphor for "not-rough"
<gorgonical>
in some sense non-segmented memory is both non-segmented *and* linear, we just don't say the second part anymore because non-linear memory is not common?
<gorgonical>
would that be right?
<zid>
what
<zid>
non-segmented memory *may* be linear
<morgan>
non-linear memory is very common. pretty much any virtual address space will be
<zid>
or it might be hyperbolic
<gorgonical>
morgan: I mean in the sense of physical vs linear. I agree virtual memory is highly non-linear
<zid>
it might be randomly distributed over 18 devices
<zid>
note that x86_64 virtual memory is both non-segmented and non-linear
<gorgonical>
yes
<gorgonical>
but the physical memory underneath can be addressed in a non-segmented, linear way
gmacd has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
<zid>
If you have a linear addressing scheme to use, access to it can be linear
<zid>
if you do not, it will be not
<zid>
the ram can't tell
<morgan>
i dunno how you'd have non-linear physical memory
<zid>
fuck up the PCB design
<gorgonical>
morgan: I think that's exactly my argument
<morgan>
i guess maybe if you have some kind of wacky MMU external to the CPU
<gorgonical>
I feel like physical and linear are used very interchangeably as a contrast word to virtual/logical and that's the confusing part to me
<zid>
or just accidentally swap bit 8 and bit 3 of the address pins :P
<zid>
now your nice linear addressing is non-linear physically
<gorgonical>
yes that would do it lol
<zid>
(You may wish to do this on purpose, but it's transparent to the cpu so who cares)
<zid>
it's very common to bundle two smaller chips together and then put chip select on bit 0 of the address, so each chip gets respectively all even and all odd addresses
[itchyjunk] has joined #osdev
<morgan>
i think in the usage i normally see "physical memory" refers specifically to "whatever your MMU is handing out blocks of" and "linear memory" is any address space where there's no possibility of having two addresses refer to the same location. but on modern systems the only linear memory is physical memory so they get used interchangably
<zid>
linear addresses are what the cpu side version of 'physical' addresses would be, if that cpu were hooked up to a physical address bus
<zid>
which.. it might not be
<zid>
and may not cover the entire linear address range even if it is
<morgan>
tl;dr memory is fake
<zid>
Like, I'm fairly sure most consumer mobos don't bother wiring up linear addresses to physical wires past 256GB
<zid>
or even 128GB
<zid>
and things like the LAPIC have linear addresses associated with them
<zid>
not physical addresses
<mrvn>
zid: if the cpu even have the address bits
<mrvn>
And how is x86_64 virtual address not linear? It goes from -gazilion to +gazillion.
gmacd has quit [Ping timeout: 240 seconds]
awita has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
[itchyjunk] has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
AmyMalik is now known as Reinhilde
[itchyjunk] has joined #osdev
gmacd has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
[itchyjunk] has joined #osdev
awita has quit [Quit: Leaving]
gmacd has quit [Ping timeout: 240 seconds]
<gog>
helo
frkazoid333 has quit [Read error: Connection reset by peer]
<zid>
heat, extend my C compiler past expressions pls
<heat>
its like tailor-made for the CCP
<zid>
is this a website about penises agan heat
<zid>
stop linking those, seriously
<heat>
zid, mine doesn't even lex shit yet
<morgan>
what in the world
<zid>
lexing is boring, do it in realtime
gmacd has joined #osdev
<zid>
lexing makes you not be able to give the cool ^-- arrows in your warnings too
<heat>
why?
<zid>
well you can, but you have to track it
<zid>
which is lame
<heat>
my idea is to get shit as simple tokens (LPAREN, RPAREN, ASTERISK, whatever) and then try to get some semantic analysis on the lex tokens themselves into a more... semantic representation
<zid>
I just did it one step
<zid>
C parser is greedy so it's easy
frkazoid333 has joined #osdev
<mcrod>
IT WORKS
<zid>
a++++b is parse error, no need for complicated nonsense
<gog>
finish writing my react component for me so i can go back to server-side work
<mcrod>
this stupid fucking toolchain build script actually works really well now
<mcrod>
fuck
<mcrod>
me
<mcrod>
fuck!!!
<gog>
ok
<mcrod>
what do you mean ok :(
<gog>
you said "fuck me"
<mcrod>
oh
<mcrod>
sure i don't mind.
<gog>
:P
<zid>
gog is small size, big potentials
<zid>
enjoy it mcfrdy
<zid>
mcrod*
gmacd has quit [Ping timeout: 240 seconds]
heat has quit [Read error: Connection reset by peer]