<bslsk05>
gcc.gnu.org: Freestanding Environments (Using the GNU Compiler Collection (GCC))
<mcrod>
this is new
<clever>
that sounds fun
netbsduser`` has quit [Ping timeout: 255 seconds]
targetdisk has joined #osdev
<clever>
geist: oh right, the other big surprise, pi5 has psci!
gog has quit [Ping timeout: 240 seconds]
<targetdisk>
so can I use the current gnu-efi headers and libraries with EFI 1.10 targets?
<klange>
You don't really target a version of EFI. The protocol discovery mechanisms, and versioned structures, allow you to determine at runtime if newer functionality is available. If you aren't making useful of newer functionality, you'll be fine on newer implementations up until the point they decide to drop some old protocol you wanted to use.
<targetdisk>
I just built the hello world application from the osdev wiki and my .efi ran from rEFIt's EFI shell, but didn't seem to do anything
<targetdisk>
it just printed an empty newline and gave the shell back
<klange>
Which "hello world" is this?
<targetdisk>
I am throughly amused how wide open my MacBook's HFS+ filesystem's asshole is through my EFI shell's FS1 (lol)
<targetdisk>
klange: who's stdint.h and friends are you using?
blop_ has joined #osdev
blop has quit [Remote host closed the connection]
<klange>
Most of them are from gcc. They should already be available in a freestanding environment directly, but sometimes that doesn't work or something wants to include_next and things get weird.
skipwich has quit [Quit: DISCONNECT]
skipwich has joined #osdev
<targetdisk>
how can I find the upstream for these freestanding headers?
<kazinsal>
I've always just used <stdint.h> normally
<targetdisk>
like from host Linux?
<kazinsal>
never had issues with finding default include paths even with -ffreestanding
<kazinsal>
from whatever the compiler's going to look for
<kazinsal>
so if it's eg. an arm-eabi-unknown toolchain it'll use that toolchain's stdint.h
<kazinsal>
which will have the correct types for that platform/ABI
<targetdisk>
I'm building using x86_64-w64-mingw32-gcc for EFI on a Linux host
[itchyjunk] has quit [Remote host closed the connection]
foudfou has quit [Ping timeout: 252 seconds]
blop_ has quit [Remote host closed the connection]
netbsduser`` has joined #osdev
netbsduser`` has quit [Ping timeout: 260 seconds]
kkd has joined #osdev
netbsduser`` has joined #osdev
netbsduser`` has quit [Ping timeout: 255 seconds]
xvmt has quit [Remote host closed the connection]
xvmt has joined #osdev
xvmt has quit [Ping timeout: 255 seconds]
gbowne1 has quit [Quit: Leaving]
rustyy has quit [Quit: leaving]
netbsduser`` has joined #osdev
rustyy has joined #osdev
netbsduser`` has quit [Ping timeout: 255 seconds]
Hammdist has joined #osdev
Burgundy has joined #osdev
netbsduser`` has joined #osdev
bnchs is now known as Cindy
netbsduser`` has quit [Ping timeout: 255 seconds]
<zid>
Stupid burning sky orb is back
<zid>
how do we stop it
<sham1>
It can't keep getting away with this
<kazinsal>
it's back behind the Big Grey here
zxrom has joined #osdev
<sham1>
Also known as the sky
<sham1>
Incidentally, the English word "sky" comes from an Old Norse word for cloud/cloudy
<zid>
Makes sense for english
<zid>
they point up and ask the vikings "What is that called?" and they replied "clouds"
admiral_frost has joined #osdev
danilogondolfo has joined #osdev
admiral_frost has quit [Quit: It's time]
Burgundy has quit [Ping timeout: 255 seconds]
<kof213>
it used to be stopped with various barking dogs and then a flood would come. so basically it is mcrod's cat's responsibility
nyah has joined #osdev
Hammdist has quit [Quit: Client closed]
GeDaMo has joined #osdev
goliath has joined #osdev
gog has joined #osdev
gog has quit [Read error: Connection reset by peer]
gog has joined #osdev
[itchyjunk] has joined #osdev
heat has joined #osdev
<heat>
vfork() is obsolete
<zid>
what about vheat()
Hammdist has joined #osdev
<heat>
also obsolete
<heat>
vhangup is also obsolete, vhangover isn't though
<heat>
in other news, discord has borked itself, yay
<zid>
discord works for me, I'm not on an eastern european ISP
<zid>
that has 256 total customers, 16 of which are part of a botnet formed from phishing emails, so the /24 netmask ban doesn't hit me
gxt has quit [Ping timeout: 252 seconds]
Hammdist has quit [Quit: Client closed]
pounce has quit [Remote host closed the connection]
pounce has joined #osdev
gxt has joined #osdev
cloudowind has quit [Remote host closed the connection]
<heat>
lost discord again
<heat>
yay
heat has quit [Remote host closed the connection]
heat has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
<netbsduser``>
they will have to apologise for this
<zid>
works fine on my western europe isp
<gog>
not working for me now
<zid>
iceland confirmed eastern europe
<gog>
witam
<zid>
crap, I'm banned now
<zid>
(api is shitting the bed on me, really, not banned)
<Ermine>
gog: may I pet you
<gog>
yes
<zid>
Lisbon, Portugal - (LIS) Re-routed
<zid>
good news, cloudflare hates heat.
<zid>
Personally
* Ermine
pets gog
* gog
prr
<sham1>
I managed to speed up the build times at work by 100%. Life is good
<sham1>
I.e. halved the build times
blop_ has joined #osdev
<gog>
noice
<gog>
i should try to do something abut that myself
<Ermine>
good job
<gog>
our deployment is convoluted
<Ermine>
sham1: maybe you now have enough time for LTO?
<sham1>
Java sadly does no LTO
<kof213>
i think when openjdk stuff appeared, gcj kind of vanished
<kof213>
it could, but i'm not sure gcj was ever "complete"
<zid>
don't worry, the GLORIOUS COMMUNIST VIRTUAL MACHINE will LTO it at runtime
Hammdist has joined #osdev
<mcrod>
hi
<heat>
gccgo vs gcj most useless runtime challenge [GONE WILD]
<Hammdist>
i'm confused a bit regarding sev. I currently use sev (and wfe) for communicating between cores. I set a quadword memory value and issue sev. so far so good. however now what would happen if there were multiple values in memory getting updated. what if the recipient received a spurious wakeup and tried to observe the shared state, it could be
<Hammdist>
borked right? so I need more than just sev? ... ?
<heat>
i think that's why you need a loop
<heat>
because everything else is just racy
<zid>
I'd think of it like a GENERIC NMI
<heat>
(a loop to recheck if the condition is true)
<zid>
and you either ack the messages individually, or you invent some lockless queue
<zid>
then it sleeps when the queue is empty again
<pitust>
lockless queue sounds fun
<clever>
Hammdist: shorn write rules, a if you do a native width write, it will be atomic, and either not be visible at all, or be fully visible
<heat>
lockless queue sounds like hell
<pitust>
yes
<heat>
as our dear polish friend would put it
<heat>
it simply DOESNT SCALE LMAO TRASH
<pitust>
i mean scylladb scales, and they use lockless queues
<heat>
scales to how many CPUs?
<clever>
from what ive heard, if there is only one writer and one reader, you can implement a lockless fifo, but that doesnt include blocking mechanics
<zid>
mjg thinks scaling = scales to infinite cpus, regardless of how slow it makes each individual cpu :P
<zid>
like anybody has more than 16 cpus in reality
<heat>
but a lockless queue would involve atomics, so it would be slower on 1 CPU and on N CPUs
<clever>
due to the shorn write rules, you can get atomic read and write with just a normal load/store
<heat>
and a cmpxchg16b is really expensive
<pitust>
well, yes
<clever>
you dont need an atomic compare and exchange
<pitust>
but so is grabbing a lock
<heat>
yeah so have multiple queues per-cpu
<pitust>
(which also involves a cmpxchg *anyway*)
<clever>
the whole point of using the shorn write rules, is to avoid the atomic opcodes
<clever>
the reader has a read pointer, the reader only ever writes to the read ptr, and the writer only reads the read ptr
<clever>
there is only one reader, so there is never any race for changing it
<pitust>
you need an (expensive) dmb there
<heat>
if you have many readers and little writers, you could very much use just a lock to serialize between writers and use something RCU-like for the read side
<clever>
so the reader can just write to the read-ptr whenever it has completed
<pitust>
at least on arm, and on x86 you might need an mfence
<zid>
Just make it a 8192 element ring buffer and let it go buckwild, if you have more than 8192 events queued, it crashes :P
<heat>
no need for an mfence
<clever>
pitust: if you dont dmb, does the write just appear at an undetermined delay afterwards?
<heat>
TSO!
<clever>
whats the harm in that?
<Hammdist>
exactly. I think that's what I need - a right buffer with a hardware memory barrier after writing an element and before updating a pointer to the latest element and sev
<pitust>
so first you write the queue item, then you write the signal
<pitust>
and what if the cpu reorders the signal write before the item write
<clever>
ah yeah, that i could see being an issue
<pitust>
or you write both atomically, but the data you write is a pointer that you filled out right before
<pitust>
still need a dmb
<clever>
so the problem is less about atomics and shorn writes, and more about the cpu re-ordering writes and messing up the rules
<heat>
pitust, btw scylladb is apparently sharded per-core
<pitust>
yes
<heat>
so no atomics there
<pitust>
how do you think the cores communicate
<pitust>
(i can assure you its not through smoke signals0
<zid>
http requests
<pitust>
no
<Hammdist>
so memory barrier is dmb on arm? would I need that both on writing and on reading or just on writing?
<heat>
it's not through a cmpxchg'd queue either
<zid>
(I'm amazed you bothered to say no to 'http requests')
<heat>
probably as little as possible, you grab a lock, shit out your IPC requests, release
<heat>
and batch them as much as possible
<pitust>
uh
<pitust>
im pretty sure its not done like that?
<heat>
if not, this whole sharded per-core arch is silly
<zid>
My vote is lockless queue
<clever>
pitust: and how costly could that dmb be?
<pitust>
depends on how much you dmb of course
<pitust>
(very)
<clever>
lets say i write to the data array of the fifo (unspecified write size), dmb, then write to a native width pointer
<heat_>
i personally hate rms but i really wouldn't make fun of him like that
<heat_>
i'd just say he's a weirdo and that would be that
<gog>
hi
<heat_>
m'gog
<zid>
hi catelynn
* gog
curtsies
<Cindy>
i mean
<Cindy>
pitust: cancer is pretty serious
<gog>
non-hodgkin lymphoma. it's not not serious, but it's treatable and he's in his 70's and it's a rather common cancer that happens with age
<Cindy>
i still wish him a good recovery
<Cindy>
oh i see
<zid>
do people get
<zid>
hodgkins lymphoma
<gog>
yes
<heat_>
yeah but most times when cancer doesn't kill ya, the treatment does
<gog>
it's a distinct type of cancer
<zid>
I've seen the non probably a hundred times
<zid>
gog: i didn't ask if it exists, I asked if people actually get it
<zid>
There are a few diseases like that
<pitust>
"He apparently has follicular lymphoma [...] which has a really good prognosis unless it's stage 3B or worse"
<zid>
where the really famous one is actually the rare one, because it was isolated first or whatever
<zid>
I think hep did that
<zid>
the hep that got discovered was the 10% case
<Cindy>
i still feel bad for him, even if it's not serious
<Cindy>
having to shave his hair and beard
<zid>
hep-c was "non-a non-b hepatitis" for a while
<heat_>
non-serious cancers are still hella serious
<zid>
not with access to healthcare, tbh
<heat_>
that really doesn't matter much
<zid>
You can have cancers so non-serious that you can have it fixed in 20 mins
<heat_>
my grandpa had to take cancer drugs after his cancer was "treated" for around 15 years, and it slowly turned his bones into dust
<heat_>
hugely impacting his way of living
<heat_>
and quality of living
<zid>
yea, a lot of cancers have a *cause*, is the problem
<zid>
they're not entirely random
<zid>
they're sort of, the outcome of a situation
<heat_>
i know
<zid>
lots of skin damage from constant UV exposure -> your first melanoma, which is probably the first of a lot of them, so you'll want to check on any random spots and bumps you get from now on
<zid>
but you can genuinely just get random fluke cancers that are easily treatable
<zid>
and you instantly go into permanent remission
<heat_>
i've seen cancer numerous times from upclose and everyone died :) even after the treatment
<zid>
yea, and nobody is saying you haven't, I hope
<zid>
Changes
<zid>
The research queue is enabled by default for new games.
<zid>
holy shit
gareppa has joined #osdev
rorx has quit [Ping timeout: 240 seconds]
CaptainIRS 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!]
<gog>
hi
<geist>
teh gog!
* gog
.+
<geist>
hmm, is that you holding a Glaive?
<geist>
oh wait, that had 5 points
<gog>
:o
<geist>
i'm watching my cat follow the narrow band of sunlight as it sweeps across the room in slow motion
<gog>
adorable
<geist>
it's a little sad though, because there's not much sun here
<sham1>
The sun is going away :(
<sham1>
Cat will be sad
<zid>
that's an empty corridor with a spellbook in it, not a glaive
<zid>
empty room tile sorry
<geist>
true dat
<geist>
suddenly makes me want to give dwarf fortress another try
<zid>
woo df
<zid>
hardest part of df isfiguring out how to set up a game that won't suck balls
<sham1>
DF!
<sham1>
zid: by buying from steam
<zid>
what?
<zid>
does steam have a magic button for that?
<geist>
yah, exactly, getting something started that self sustains enough to explore i never cracked
<sham1>
It has improvements like better (?) graphics
<geist>
yah i have the steam one
<zid>
okay so not what I was talking about
<zid>
It's easy to accidentally not have soil, or you forgot to bring an axe, or something crippling, if you're inexperienced
<sham1>
Oh
<sham1>
So you mean skill issue
<zid>
or you're accidentally in an undead elephant biome
<geist>
DF is a harsh mistress
<sham1>
It's !!FUN!!
<zid>
my first few games were like that, you can pick your own fun once you get the hang of world creation and embarking
<zid>
whether you want specific challenges to overcome like not having wood etc
<geist>
yah exacty. i played it a bit, bounced off of it, but i knew that i would because its an incredibly steep learning curve
<zid>
once you learn how to grow food and turn it into booze you can get pretty dang far
aejsmith has quit [Quit: Lost terminal]
<zid>
You only really die to hubris after a few games :P
<zid>
"Yea sure I can totally take a forgotten beast zombie wyvern that spits fire and webs"
aejsmith has joined #osdev
<heat_>
hi geist
<zid>
I should really check back in on the steam version at some point
<geist>
hola
<sham1>
'ola
<zid>
I gave it a very quick run and a lot of the ui was just much harder to use
<bslsk05>
github.com: Why using 3 spaces as indentation? · vvaltchev/tilck · Discussion #88 · GitHub
<heat>
holy fuckkkkkkkkk
<zid>
fun fact, the first thing my friend said to me after getting a job at vmware was that the code was nuts
<heat>
i could forgive everything but 3 spaces indentation
<heat>
tabs spaces who gives a damn
<heat>
but 3?
<zid>
I give a damn
<zid>
tabs *literally solves this issue*
<heat>
cry
<zid>
It's what they're *for*
<zid>
You want 3? Set your tab width to 3, done. Nobody else will even know. MAGIC.
<heat>
you want the 3-width tabbed people to stay closeted?
<heat>
so do I
<zid>
To me it makes about as much sense as some people saying the [ key is awkward on their keyboard layout, so they're just going to start writing BANANA, and submit patches to vim to accept BANANA as a replacement
<zid>
and then for some reason it gets popular enough to be the 'correct' coding style at major corps