<bslsk05>
mirrors.edge.kernel.org: Index of /debian/dists/
<bslsk05>
www.debian.org: Debian -- News -- Debian 12 "bookworm" released
Terlisimo has joined #osdev
danilogondolfo has joined #osdev
elastic_dog has quit [Ping timeout: 260 seconds]
Jari-- has joined #osdev
elastic_dog has joined #osdev
sympt has quit [Server closed connection]
sympt has joined #osdev
elastic_dog has quit [Ping timeout: 265 seconds]
gmacd has joined #osdev
elastic_dog has joined #osdev
Ali_A has quit [Quit: Client closed]
gmacd has quit [Ping timeout: 265 seconds]
awita has joined #osdev
gmacd has joined #osdev
Jari-- has quit [Ping timeout: 265 seconds]
gmacd has quit [Ping timeout: 240 seconds]
Ermine has quit [Server closed connection]
Ermine has joined #osdev
awita has quit [Ping timeout: 240 seconds]
<mcrod>
i wish we had static_assert at work
Left_Turn has joined #osdev
<Ermine>
gog: may I pet you
sebastiencs has quit [Server closed connection]
sebastiencs has joined #osdev
<FireFly>
but do we have static_assert at home?
<FireFly>
(no I don't have a punchline for this)
<bnchs>
we have static_assert at home
<bnchs>
static_assert at home: if (condition) { printf(message); }
<mrvn>
In C++23 why is it "auto foo(this X & self)" and not "auto foo(this & self)"? Meaning "this" as magic type instead of type modifier?
<mrvn>
bnchs: +exit(EXIT_FAILURE);
<mrvn>
and that's not static
<mcrod>
basically, we have a segmented display at work
<mcrod>
and I wanted to put in a compile-time check if someone is passing us a character that cannot be represented on the display
<mrvn>
mcrod: and what is the problem?
<mcrod>
can't do that, I don't even think I could do that with static_assert
<mcrod>
the problem is it's C99
<mrvn>
if constexpr (!is_printable(c)) { ... }
<mrvn>
mcrod: duh
<mcrod>
the problem is it's C99 <--
<mrvn>
have you tried building it as c++?
<mcrod>
sucks. i wish we could use a subset of C++.
<mcrod>
yes, it doesn't work
<mcrod>
and even if it would have
<mcrod>
i'm not the one who decides if we can just use C++ :p
<mrvn>
you could always build it as c++, throw away the result and rebuild as c
<mcrod>
literally, that will not be allowed
<mcrod>
I have no power
<mcrod>
I cannot make those types of changes
<mcrod>
even if I'd talk to someone they'd be like "wtf" cuz C++
<mcrod>
"c++ in my embedded field no way"
<mrvn>
it wouldn't be c++. Othwerwise the second compile run would fail.
<mcrod>
brother
<mcrod>
you've sold me
<mcrod>
but
<mcrod>
unless you want me to get fired i cannot do what is asked
<mrvn>
But really. A subset of c++ is exactly what you want for embedded work.
<sham1>
Doesn't GCC have an extension?
<mcrod>
we're not on gcc
<mcrod>
we're on iar
<mcrod>
and yes mrvn i've been saying this for a while to these guys
<sham1>
RIP
<mrvn>
freestanding c++ - rtti - exception is really the way to go.
<mcrod>
i assume you mean "minus rtti and exceptions"
<mcrod>
and those dashes don't mean "include"
<mrvn>
mcrod: that's what x - y - z means
<mcrod>
hey
<mcrod>
some people do that, and then mean +
<mrvn>
freestanding c++ includes thwose two but most people don't want the overhead.
<sham1>
Those people are wrong
<mcrod>
it would be quite nice to use a careful subset of C++
<mcrod>
but, it would be simpler to count every grain of sand on the shoreline than convince someone in embedded to use C++
<mrvn>
mcrod: then you are working the wrong subset of embedded programmers.
<mcrod>
are you kidding
<mcrod>
C programmers dominate, repeat, dominate embedded work
<mcrod>
embedded? C
<sham1>
There is a sane subset of C++, which is mostly just the subset shared with C
<mrvn>
there are still a ton of people using c++ for embedded
<mcrod>
it also depends on what you're making
<mcrod>
for stuff that's safety critical, gcc/clang isn't a safety certified compiler
<kof123>
"dominate, repeat, dominate " is this one of those programmer reads a shampoo bottle jokes
<mrvn>
and note: nobody said anything about using the STL. That's just plain out.
<mcrod>
and those that _are_, don't support much of C++
<mcrod>
no I know
<mrvn>
mcrod: maybe you need to wait for the next generation to grow up, you know the generation that grew up with arduino.
<sham1>
Gonna be a while
<gog>
Ermine: yes
<mcrod>
hopefully C++ is also dead by then
<mrvn>
sounds like you don't like c++ yourself
<mrvn>
hard to convince somebody to use a language you don't like yourself
<mcrod>
i'm not quite a super fan
<mcrod>
but it is the right tool for the job here
<mcrod>
especially with the example I just gave
<mcrod>
plus, we could reduce a decent amount of code duplication
<mcrod>
class SomeOSTask : public HAL::OS::Task<SomeOSTask> would already be *a metric fuckton better* than what we're doing now
<mrvn>
I shiver everytime someone reminds me that these safety critical machines use a language where strings and buffers don't use length checks.
<mcrod>
well I don't work on safety critical machines, but :p
* Ermine
pets gog
<mrvn>
mcrod: make that class SomeOSTask : public HAL::OS::Task with "this deduction" in c++23
<mcrod>
oh wow, that's neat
<mrvn>
mcrod: only works for internal use. Not is some user of the class then tries to use "HAL::OS::Task &my_task = someOsTask;"
<mcrod>
another thing that would be better would be `component.TakeSomeAction([]() { // do this when that's done });`
<mrvn>
my_task.some_task_functiuin(); gives a failure for the reference.
<sham1>
I'd think that there is still use for the curiously repeating template arg
<mrvn>
mcrod: I have EXIT_SUCCESS { close(fd); };
<mrvn>
EXIT_SUCCESS being a macro that hides the `component.TakeSomeAction([]() `
<sham1>
Or does reducing this subsume all
<mcrod>
mrvn: that seems weird
<mrvn>
sham1: there is, for the external usage case where you want the mixed in methods to be callable on a reference to the mixed in type.
<sham1>
Hm
<mrvn>
mcrod: EXIT_SUCCESS only calls the next {...} block when the code doesn't throw an exception, EXIT_FAIL is the same for when it throws an exception and EXIT_FINALLY for always.
<bslsk05>
'CppCon 2015: Andrei Alexandrescu “Declarative Control Flow"' by CppCon (01:07:34)
<sham1>
I think I watched a Cppcon talk about that
<sham1>
Ah yeah, thats it
<mrvn>
I think it's a really nice way for error handling if you don't want to have your error path a few pages down from where the error happens.
<sham1>
It's kinda like defer
<mrvn>
And no need to use "goto fail1; goto fail2; goto fail3;" if you have to stack multiple cleanup codes.
<mrvn>
sham1: sure. it defers the execution and even makes it conditional.
<mrvn>
Anyway, you could have TAKE_SOME_ACTION(component) { // do this when that's done });
<mcrod>
but what if the component doesn't allow whatever action TAKE_SOME_ACTION is doing
<mrvn>
mcrod: then you get a compiler error
<mcrod>
i mean yeah, you'll get a compiler error
<mrvn>
With concepts you can even make it a good one
<mcrod>
i dunno, it just feels unnatural
<mrvn>
e.g. component lacks the concept "take_action"
<mcrod>
see that's better
<sham1>
I shudder to think about the compile time
* gog
prr
<mcrod>
our project is tiny
<mrvn>
sham1: why would it be slow?
<mcrod>
even if it would slow down, it would only be for an additional few seconds, guaranteed
<mcrod>
I've been trying desperately to get people to use LLVM here
<mcrod>
but, do not overestimate how much power I wield to influence people, which is none
<mrvn>
I thought you need something safety certified
<mcrod>
no I gave safety certification as an example
* mjg
scratches gog behind the ear
<mcrod>
unless we're worried about vending machines exploding when you buy a $2.50 coca-cola
* gog
prr prr
<mrvn>
step 1: compile with llvm, step 2: submit fixes for all the problems that shows, step 3: get famous for all the bugs you fix before release, step 4: tell people that you use llvm to detect them automatically
<gog>
i've been back at work for 2.5 hours and i want to go home now
<mjg>
programmimng work from the office in 2023
<Ermine>
Monday
<mjg>
you are doing life wrong
<sham1>
Because concepts and such live in headers and I've noticed that those tend to be major bottlenecks especially with weird template things
<gog>
it's easier to work at the office for the moment
<gog>
until i have a home office
<gog>
someday
<mcrod>
mjg: it is getting increasingly more difficult to find fully remote work in the US at least
<mcrod>
in part because of the asshole corporate people who think it's more efficient for everyone to be in an office
<mcrod>
wait until they realize I implemented a whole feature in my bed, in my boxers
<mcrod>
(yes, I'm angry about the whole RTO movement)
<mrvn>
sham1: conpects actually make things faster than old style template deduction. But sure, compared to C that wouldn't type check things to the same degree it would be much slower.
<sham1>
I work for uni. Remote? What's that?
<sham1>
Researchers like this for some reason
<mrvn>
you know, slirp and such
<mjg>
mcrod: prgoramming tho
<mjg>
i know other jobs got impacted
<mjg>
managers gotta pretend they are of value
<gog>
my manager isn't even here, he's god knows where. netherlands i think
<mcrod>
my friend's manager is on the other side of the country
<zid>
change the locks
<zid>
your company now
* mjg
has remote managers for over a decade now
gmacd has joined #osdev
<gog>
he's not remote, he's just taking a week off lol
<sham1>
Lucy you
<gog>
no estaba aqui hoy
particleflux has quit [Server closed connection]
<mcrod>
i want a fully remote job
<mjg>
stop coming to the office
particleflux has joined #osdev
<mcrod>
no
<mjg>
you know i got fully remote first time around?
<mjg>
:]
<mjg>
how*
<mjg>
i literally stopped showing up
<mcrod>
maybe in poland workers have better protections
<mcrod>
in the US, it's not the same
<mcrod>
i would be _fired_ if I just stopped coming into the office
<mjg>
my manager initially took issue with it
<mjg>
i said y tho
<mcrod>
we're not all rebels
<mcrod>
and even if we were
<mjg>
and that was that
<mcrod>
i'd kinda like to move to my apartment soon.
<mjg>
mcrod: mate in the US your employment is in danger everyday
<mcrod>
that's correct
<mcrod>
and the solution to that isn't to rock the boat
<gog>
US work culture is something i still need to learn to shake off
<mjg>
if you don't have savings for 6 months of living you doing it wrong
<mcrod>
same thing
<mcrod>
also, you assume most workers aren't living paycheck to paycheck
<mjg>
you should probably interview for practice
<mjg>
i don't assume that
<sham1>
We developers liked Covid-remote, while the researchers didn't seem to. They have priority
<gog>
i'm always anxious that i'm not doing a good enough job and that i'm about to get fired. i told my boss this and he's like "lol americans"
<mjg>
unless we talking PROGRAMMING
<zid>
gog: I did some python :(
<gog>
zid: good job
<mjg>
gog: how big is your workplace?
<sham1>
RIP
<zid>
noooo
<mcrod>
just saying, it is not as easy or as simple as you might imagine
<mcrod>
otherwise, everyone would be doing it
<mcrod>
I could very well lose my job this morning (highly unlikely), but that's because worker protections in the US are virtually nonexistent
<zid>
let's all play OldCoinPusherFriends2
<gog>
mjg: there are 9 of us in the hq office
<mcrod>
the last layoff round they let go most of the principal engineers
<zid>
instead
<gog>
then we have like 20-something sales reps that work at various places around town
<mcrod>
because those are the guys who are making $$$$$$$
<mjg>
gog: that's a small company then
<mjg>
gog: in which cae you should be worried
<gog>
wdym
<mjg>
it's the big ones where you can do nothing for months
<mjg>
before anyone notices
<gog>
oh it's not like i do nothing
<gog>
i work very hard
<mjg>
i'm saing the small ones aer volatile
<gog>
yes
<mjg>
2 bad months and things go to shit
<gog>
it survived the pandemic
<gog>
barely
<mjg>
also pro tip: if you are working hard, you are doing it wrong
<gog>
:<
<mjg>
but i alredy ranted about this quite a few times
<sham1>
Oh cool, Friday has 30°C
<mcrod>
right now, i'm trying to work on a new tool for my team
<mcrod>
am I doing it wrong
<sham1>
It went from anomalously cold to this. FML
<mjg>
mcrod: maybe
<mjg>
is this the best thing for your customers
<mcrod>
it's the best thing for me so I don't blow my brains out
<mcrod>
arguably, more important than the customer.
Piraty has quit [Quit: -]
<mjg>
at Initech we are a family
<mjg>
which means the customer comes first
<gog>
i worked at a company that was "family"
<gog>
i had a meltdown and stopped going to work one day
<mcrod>
was this in the US
<gog>
one of the best days of my life
<gog>
yes
<gog>
they were trying to fire me and i should have let them
<gog>
but i was tired of the place
<mjg>
:d
<mcrod>
yeah in the US there is this weird "family" attitude
<mcrod>
if you see a job saying "we're a family", don't apply, or quit
<gog>
yes, family are people you exploit for their labor
<gog>
and then treat like crap when they struggle with stuff
<mjg>
see the remark about working hard
Piraty has joined #osdev
gmacd has quit [Ping timeout: 255 seconds]
<mjg>
CEO's yacht is not going to pay for itslef
<mjg>
so make sure to stay for unpaid overtime
<gog>
i actually don't do that under normal circumstances
<gog>
there's only one time i did and it was an ongoing emergency
<mjg>
funny story
<sham1>
It's a family. It's weird, calling it a family probably doesn't have the wanted connotation
<mjg>
at $workplace there was a temp emergency
<mjg>
they ask the team to stay late
<mjg>
i did not
<mjg>
they said nothing
<mjg>
hint hint
<gog>
i was not asked, i did so voluntarily
<gog>
the boss was indisposed and we were fucked every which way
<gog>
i was rewarded handsomely
<gog>
worth it imo
<mjg>
if the company earned itself some good will
<mjg>
or you are despreate
[itchyjunk] has joined #osdev
<mjg>
then sure
<gog>
the former
<mjg>
otherwise spend NO
<mjg>
s/spend//
<gog>
because despite the technical challenges i do actually like this job lol
<mjg>
spend the time getting skillz for the next job instead
<mcrod>
you're even more bitter than i am, mjg
<mcrod>
and that's something
<mjg>
bitter?
<mjg>
i'm in bliss mode mate
<mjg>
i make my own hours, rarely attend any meetings and moslty pick my tasks
<mjg>
i'm saying, if i was to go back to BIGCORP, and there was no strong team ruling with an iron fist
<mjg>
i would do my best to fit in as bare minimum drone
<mjg>
and put any effort into getting out to greener pasture later
<mjg>
anything else at such a place is a recipe for burnout
<mjg>
incompetent twats getting promoted ahead of you and you fixing their shite after == corp 101
<mjg>
unless you make sure to not give a shit, which ir ecommend :)
gmacd has joined #osdev
<gog>
i have a fluffy puppy under my desk
<gog>
what's not to love
gmacd has quit [Ping timeout: 240 seconds]
<sham1>
<3
<gog>
on another note, i just got a message that punched me right in the feels and now i really want to go home. i'm gonna take lunch
<bnchs>
awwww
mahk has quit [Server closed connection]
mahk has joined #osdev
gmacd has joined #osdev
SGautam has quit [Quit: Connection closed for inactivity]
gmacd has quit [Ping timeout: 268 seconds]
MuonNeutrino has quit [Server closed connection]
MuonNeutrino has joined #osdev
gmacd has joined #osdev
gareppa has joined #osdev
gmacd has quit [Ping timeout: 240 seconds]
gareppa has quit [Remote host closed the connection]
heat_ has joined #osdev
andydude has joined #osdev
<heat_>
mjg, hi im a recruiter for a sekrit corporation for your favourite enterprise and desktop distros. are you interested in a position?
<heat_>
we pay.
<mrvn>
in rubels?
<mrvn>
.oO(We pay in SortixCoins)
<zid>
do you pay
<zid>
the money
<heat_>
yes, we pay money
<heat_>
multiple moneys, even
<sakasama>
Do you provide waifus?
<heat_>
gog, hey i got low blood sugar in the middle of my workout so i almost passed out and puked in the bathroom
<heat_>
never forget that your day could be shittier than what it is atm
<sakasama>
That's always a comforting thought.
<zid>
heat_: That's the guilty from not feeding the kitty
<Ermine>
poor heat_
<heat_>
poor heat underscore
<heat_>
but heat though, that guy's an asshole that does not feed kitties
<Ermine>
I puked once too when I didn't have breakfast before workout
<heat_>
i usually have little to no breakfast, like today
<heat_>
i suspect i pushed myself too hard + shitty breakfast = barfing all over the gym's bathroom
<heat_>
was a good workout though
gareppa has joined #osdev
<gog>
i can't wait until gym tomorrow actually
<gog>
i didn't work out all last week
<mjg>
heat_: drink PRIME to hydrate
<heat_>
found jake paul
<heat_>
or is it logan
<heat_>
i think its logan?
<mjg>
logang 4 life
<mjg>
now that you mention perhaps weird they don't promote the same brand
<mjg>
OR
<mjg>
the other fuck is not promoting an identical product made by the same company under a different name
<mjg>
all while claiming there is a /beef/
<heat_>
ALL BROTHERS LOOK THE SAME
<mjg>
i mention prime cause earlier today i passed a kid carrying 2 bottles of it
<heat_>
isn't jake a pseudo-boxer now?
<mjg>
poor fucking sap
<sakasama>
No, drink Brawndo: it has electrolytes.
<mjg>
i though they both are?
<mjg>
youtuber boxing or sometyhing
<heat_>
i think logan is a pseudo-wrestler
<zid>
did you remember to drink your verification can
<heat_>
ah wait it was logan that fought floyd
<heat_>
this shit is c o n f u s i n g
gareppa has quit [Quit: Leaving]
<zid>
I prefer not to talk about and signal boost trash people
<zid>
who actively detract from humanity
<heat_>
>signal boost trash people who actively detract from humanity
gareppa has joined #osdev
gareppa has quit [Remote host closed the connection]
<sakasama>
zid: Humanity is a wreck: do your part; recycle.
<zid>
I'd compost a great number of 'celebs'
gmacd has joined #osdev
gareppa has joined #osdev
<gog>
i'm a celeb
<gog>
i'm a niche internet microcelebrity
<heat_>
"Gordon Ramsay reviewed the drink on Heart radio, describing it as "like swallowing perfume", and giving it 0/10."
<heat_>
i need to try prime now
<sakasama>
gog: Are you an organic or synthetic?
<gog>
i'm a photonic
<heat_>
i wonder if it has a woody flavour
<Ermine>
Do not show him my cooking, he will get super enraged
* mjg
burps
<gog>
it's fucking rawwwwwwwww
<sakasama>
Ermine: Who cares? He can't even make grilled cheese properly.
<mjg>
what's up youtube, it's your boy logan
<mjg>
(i have no idea what his greeting is, deal with it)
<heat_>
what's up onlyfans, it's your boy mjg and today we're going to be looking at some HOT SINGLE FLAMEGRAPHS
gmacd has quit [Ping timeout: 268 seconds]
<mjg>
in your area
<gog>
where do i sign up
<gog>
also yay the thing i'm doing finally works through the whole flow
<mcrod>
oh my godf
<heat_>
unrelated note: linux perf event stack traces give me a random ffffffffffffff80 as the first PC and I don't know why
<mcrod>
CMakePresets is SO FUCKING GOOD
<mcrod>
it's only missing one thing: can't specify the make program
<mcrod>
as in, its path
<heat_>
mjg, btw you didnt tell me why you think i should ditch my OS
<mjg>
there is a point where the work done could as well be done on a "real" project
<mjg>
again depends on your kinks here
gmacd has joined #osdev
<mjg>
some people just like their the idea of a project they fully wrote
gareppa has quit [Quit: Leaving]
gareppa has joined #osdev
<mjg>
how about you instead build on LEGACY
<mjg>
of UNIX HACKERS
<mcrod>
UNIX-HATERS*
<mrvn>
heat_: stack underflow?
<mrvn>
mcrod: put the path in PATH?
<mcrod>
yeah but I was hoping we wouldn't have to do that
<mcrod>
it's no big deal
<mcrod>
just, I would've preferred it super streamlined
<mrvn>
does it use the MAKE env?
<mcrod>
no idea
<mcrod>
maybe?
<mrvn>
Why are you trying to use make in CMake anyway? It's supposed to replace that.
<mcrod>
CMAKE_MAKE_PROGRAM points to the path of the generator you specify
<mcrod>
e.g. the path of Ninja
<mcrod>
not literally "make"
<heat_>
mjg, my experiences looking at freebsd and hacking on it were miserable, openbsd and netbsd are a hard no, i have no place in linux (pay me!), fuchsia is futile to contribute to, etc etc
<mrvn>
does ninja come with a cmake sniplet?
<heat_>
so I don't see myself meaningfully contributing to any other open-source OS in the near future
<mcrod>
no
<heat_>
also Onyx is not tainted with the code of "other people" so nothing gives me more joy than to hack on it
<mcrod>
now I'll make a pull request to you
<heat_>
ok, i'm super picky btw
gmacd has quit [Ping timeout: 260 seconds]
<mcrod>
basically, what I want people to do at work is simple
<mcrod>
a) install VS build tools (no choice)
<mcrod>
b) pull the repo, run the `fetch_toolchain.ps1` script
<mcrod>
then open the project in any IDE
<mcrod>
boom, it works
<mcrod>
as god intended
<mcrod>
wait a minute,.
<heat_>
god did not intend for computers to exist
<mcrod>
I wonder if I can specify CMAKE_MAKE_PROGRAM in the toolchain file
<mcrod>
I'm sure I can
<mrvn>
change your build system over to "gog" and boom, it works, as gog intended
<mcrod>
basically, the toolchain ships Ninja, and if you're not using Ninja, you're on your own
<mcrod>
(not to say that I wouldn't disallow someone from using another generator, that would be remarkably bad)
<mjg>
heat_: you do you
* gog
gogs
<gog>
MSBuild or nothing
<mcrod>
o holy gog, we bow to you
<gog>
i demand an offering of cats and estradiol valerate
<heat_>
mjg, i do be doin me. i've considered giving freebsd another shot. or linux but linux is mostly complete and I don't really have a spot there
<mrvn>
estradiol valerate?
<gog>
mrvn: girl juice
gmacd has joined #osdev
<heat_>
the fucking sysctl code gave me cronic depression
<mjg>
wait till you work in the industry
<mjg>
it's all crap
* sakasama
only has estradiol. :(
<gog>
we can only work with the tools we have
<gog>
cow tools
* sakasama
disables cow.
<mcrod>
it really sucks that clang doesn't just detect windows SDK raw
<heat_>
If some of you people keep insisting on having backwards compatibitity with the stone age, we'll have stone tools forever
<mcrod>
it REQUIRES vs build tools at minimum it seems
<heat_>
- unknown UNIX derivative developer
<mjg>
UNIKKKZ
<mjg>
you know what's great
<gog>
eunuchs
<mjg>
nothing
<mjg>
gog: you reminded me of black adder
<mjg>
do you know what that is
<gog>
yes
<heat_>
the UNIX of old
<mjg>
brah
<mjg>
gog: how old are you dawg
<gog>
35 bro
<mjg>
heat_: go watch some episodes, genz
<mjg>
gog: 's about my age mate
<mjg>
you gave yourself away by knowing the show
<Ermine>
heat_: welcome to genz
<gog>
"congratulations, you played yourself"
<gog>
dj_khaled.gif
<heat_>
Ermine, why are you welcoming me
<Ermine>
heat_: because mjg identified you as genz
<heat_>
i've always been genz
<Ermine>
Hm, I thought you're millenial
<heat_>
anyway I'd like to pull up the andrew tate UNIX of old clip but r/linuxcirclejerk is privated
<sbalmos>
i'm miserably ashamed/insulted to be at the far old end of millennial
<zid>
sakasama: I have paracetamol if that helps
<zid>
It ends in -ol, so maybe!
<gog>
heat_: lmao i tried too
<mjg>
i have admit it is boomer of me to bring it up though
<gog>
the kings of old wanted unix
<gog>
ok boomer
<mjg>
OH
<mjg>
right in the nokia 3310
<gog>
i had one of those too
<gog>
maybe i'm also a boomer
<heat_>
jamie, please pull up the UNIX of old clip
<mjg>
i did in hs
<gog>
i had a motorola v60 i
<mjg>
i was the rich class in hs
gmacd has quit [Ping timeout: 250 seconds]
<sakasama>
zid: I'm allergic to it, so... it might possibly cure my symptoms.
<mjg>
in my shite hometown it was a privilege to have a cellphone at the time
<gog>
mjg: where u from bro
<gog>
i think my coworker is from katowicze (sp?)
awita has joined #osdev
gmacd has joined #osdev
<mjg>
that would be katowice
<mjg>
i'm from a small shitetown in the south
<heat_>
mjg is from philly
<mjg>
mountain area
<mjg>
heat_: i'm mobbed up in new jersey
<heat_>
he's polish-american but is one of those "really ethnical" americans
osmten has quit [Quit: Client closed]
<heat_>
ever since ancestry.com told him he's 2% polish he's been KURWA MAC
<mjg>
there was a funny sopranos episode where they went to italy
<mjg>
turns out their self-proclaimed ancestry is not recognized
<mjg>
heat_: i'm 3% italian so i say OH more often
<zid>
I think being 3% italian makes you 100% american
<heat_>
3% italian + 3% irish = 200% murica
<mjg>
but if i weigh below 100 kg i'm at most 50% american
<mjg>
boom roasted
<gog>
does that make me 70% american
xenos1984 has quit [Read error: Connection reset by peer]
<mjg>
gog: dependz. what's your BMI dawg
<mjg>
gog: or just height
<heat_>
what's your SSN
xenos1984 has joined #osdev
<heat_>
show me your IBAN
gmacd has quit [Ping timeout: 265 seconds]
<gog>
mjg: 172cm
gmacd has joined #osdev
<mjg>
gog: at ~4kg away from being considered mildly overweight, i estimate you to being at most 30% american
<mjg>
if you fit in a chair are you even trying tho
<gog>
better stop exercising
<mjg>
asking the real muricans here
<mjg>
gog: ye, have a snack instead
<mjg>
fun fact: i broke my scale last year
<mjg>
but not for being too fat
<andydude>
I think being born in america makes you 100% america
<mrvn>
mjg: you are 97% monkey.
<mjg>
(i'm at 80kg :p)
<andydude>
I was born in amera
<mjg>
probably some fucking BSD code in there
<andydude>
ica
<sakasama>
gog is 140kg?
<andydude>
wait mrvn's DNA is BSD code? how is that even possible?
<mrvn>
andydude: no way
<gog>
sakasama: 70 :P
<sakasama>
gog: Oh, that would make you merely 35% American by mjg logic.
gmacd has quit [Ping timeout: 260 seconds]
* mjg
sends gog a chocolate bar
<mjg>
gog: when is your cheat day? mon-fri?
<andydude>
I wouldn't be surprised if i was 5% BSD
<mjg>
andydude: if you are not old and cranky, you are 0% BSD
<andydude>
I am both, actually
<sakasama>
I wonder if I even have DNA. It's felt like something's missing for a long time now.
gmacd has joined #osdev
<heat_>
gog, yeah what the hell was that math
<Ermine>
100% American == 200kg?
<mjg>
sakasama: maybe you can ask chatgpt to fill in some gap
<zid>
I am also 70kg and 172cm
<heat_>
we're all 70kg and 172cm in this blessed day
<zid>
wait no I am taller
<zid>
I forgot how measuring things worked
<zid>
182cm*
<zid>
Thankfully heat only courts men above 182.88cm so I am safe
<mcrod>
i am short
<mcrod>
167cm
<heat_>
short kings stand up (literally, we must)
<zid>
Do you have a similarly short sister
<mcrod>
i don't have a sister
<zid>
boo, I finally find someone with midget genes
<zid>
and they have no sister
<mjg>
i'm taller than zid if i stop being slothed forward
<zid>
how does one slothe
<gog>
mjg: the only thing i avoid now is refined sugar
<gog>
i cheat whenever i like, i just mostly don't eat have any or keep it in the house
<gog>
also crisps
<zid>
I stick to a string orangutan based diet
<zid>
They discontinued my favourite food, dolphins
<mjg>
i thought that's thew ord
* mrvn
is on the eat what you want when you want as much as you want (or at least have available) diet.
<mjg>
it's about not sitting/standing straight
gmacd has quit [Ping timeout: 260 seconds]
<mjg>
and having your posture deteroriate with head moving a little forward
<mjg>
and down
<zid>
slouch
<mjg>
"nerd neck" or however they call it
<mjg>
souch
<mjg>
aight
<zid>
I look down at my monitor like it has offended me greatly
<mjg>
i'll remembert with the typo
<zid>
usually because someone has
<mrvn>
you've reached the perfect sluch when your chin hits your belly.
<mjg>
and perfect weight when you can't see your dick
<zid>
"i love cmake" "c++ is great" etc
<mjg>
gog: mmm so are you pretending to be on any particular diet?
<gog>
nope
<heat_>
mcrod, seriously do you like cmake or is this just stockholm syndrome at this point
<mjg>
godo for you
goliath has quit [Quit: SIGSEGV]
* mjg
is on LIVER KING DIET
<gog>
lmao
<zid>
reddit itself is currently down, I accidentally hit r[enter] on my browser from force of habit
<zid>
there's nothin there today anyway and somehow it's still not working, lol
<mjg>
i just checked and it works
<mjg>
but thanks to you i learned r/badhistory was made private
<mjg>
wtf is that about
<mjg>
one of the few subs worth visiting
<GeDaMo>
It's a protest about the API fees Reddit wants to introduce
<mjg>
ooh
<GeDaMo>
Today and tomorrow
<GeDaMo>
Although some subreddits have said they'll stay dark indefinately
<mjg>
i'm guessing the usual sludge factory is unaffected
<zid>
It had to be a monday eh btw
<heat_>
what sludge factory
<zid>
honzuki releases are monday, so no discussion thread :(
<mjg>
broo
<mjg>
heat_: you do realize reddit is home to rather... extremist communities
<mjg>
of any variety
<heat_>
yes
<zid>
yes, we know it has americans on it
<mjg>
then RED PILL i'm guessing operates as usual, and so does its counterpart femaledatingstrategy
<mjg>
the latter is so outlandish one would be excused to think it is a parody
<mjg>
GeDaMo: heh i pulled of a Typical User on this one
<mjg>
> This subreddit is set to private as part of a joint protest to Reddit's recent API changes, which breaks third-party apps and moderation tools. We're not accepting approved user requests either, so please don't message the mods.
<heat_>
oh haha reddit is dead for me
<gog>
reddit delenda est
<zid>
yea was dead for me too, like.. they can't handle the traffic today of all days?
<heat_>
i went to check if the GREATEST SUB ON EARTH r/pyongyang was up
<GeDaMo>
Maybe somebody is trying a DDOS?
<gog>
cloudflare
<mjg>
heat_: lol
<mjg>
what are they doing over there? memeing THE GREAT LEADER?
<sham1>
heat_: you have been made moderator of /r/pyongyang
<mjg>
i got 2 load errors, worked the 3rd time
<mjg>
i can confirm r/books -- a massive sludge factory -- operates as usual
<GeDaMo>
Yeah, I'm seeing a few "you broke Reddit"
<heat_>
are we getting API ratelimited too? :v
<sham1>
Meanwhile the Lemmy instance I migrated to seems to be under pressure. Hug of death
<GeDaMo>
Some subreddits are still open but not allowing new posts
<sham1>
No NSFW in API calls. Absolute stupidity by Reddit Inc
<zid>
they should add API pricing to rate limit this shit
<heat_>
lmao
<mjg>
> r/prettynormalfuckery has gone private!
<mjg>
lol
<mjg>
got a notification
<zid>
anyway re the api pricing, 99% sure it's "stupidly high" because they've priced it for google etc's ML scraping
<mjg>
is 7806 the real total of all subs?
<mjg>
seems oddly low?
<zid>
not people who actually use the website
<zid>
mjg pay more attention
<GeDaMo>
It might just be the subreddits with over a certain number of subscribers
<zid>
[15:41] <zid> it isn't a comprehensive list at all
<nortti>
aiui it's subs that have pledged to go dark
<mcrod>
Reddark pulls the list of participating subreddits from the threads on r/ModCoord. If you are the moderator of a sub that is going dark and that is not displayed on Reddark, you can message the r/ModCoord moderators to request that the subreddit is added to the relevant thread.
<mjg>
aight so is there an estimate how much of reddit is really going dark?
<heat_>
mjg, "And beer results in ideas, which results in new code." theo deraadt
<mjg>
liek i'm all for optimization by compilers 'n shit
<mjg>
but was there any effort put into making the source code not suck?
gareppa has quit [Quit: Leaving]
<heat_>
some people find the tradeoff worth it
<Ermine>
What about using mold?
<mjg>
lIcEnSe
<nortti>
does mold do lto?
<mcrod>
why isn't there a linker called old
<heat_>
it's not the linker's problem per se
<heat_>
they use linker plugins
<heat_>
there's a whole relatively opaque LTO API that you use to call into the linker plugin
<mcrod>
i wonder if the CI pipeline will just kill the build
<heat_>
e.g gcc -flto linking does /bin/ld --linker-plugin=/x86_64-onyx/lib/libLTO.so
<mcrod>
it's been 48 minutes
<heat_>
then ld just dlopens the linker plugin and calls it
<heat_>
mcrod, not really
<Ermine>
Do they have limited number of free CI hours?
<mcrod>
no idea
Vercas1 is now known as Vercas
<heat_>
no
<mcrod>
of course though, we're not going to get fancy EPYC shit deployed to us
<heat_>
you have a 2-core xeon and some 8GB of ram
<mcrod>
basically worthless
<heat_>
cry
<heat_>
it's literally free
<mcrod>
motherfucker I get that
<mjg>
ey
<heat_>
are you turning into mjg
<mcrod>
maybe
<heat_>
are you going to start saying mofo
<mcrod>
no
<mjg>
i was going to suggest shorting the word
<mjg>
mofo or mofer
<heat_>
oh yes mofer is also a classic
<mcrod>
i wonder if you can pay for beefier hardware
<mjg>
i'm saying what you probably want the most is basic profiling data
<mjg>
do you have that mofo
<mjg>
shite code optimize with lto is shite/2 at best
<mjg>
if nobody had a critical look with a profiler one has to expect massive problems
<mcrod>
"In addition to the standard GitHub-hosted runners, GitHub also offers customers on GitHub Team and GitHub Enterprise Cloud plans a range of larger runners with more RAM and CPU. These runners are hosted by GitHub and have the runner application and other tools preinstalled."
<mcrod>
basically, not any of us
<heat_>
mjg, profiling on what?
<heat_>
LTO in general or "my" LTO binary?
<mjg>
target fucking cpu with target fucking workload
<heat_>
cuz the effects of LTO are largely understood
<heat_>
ofc it depends on the codebase
<heat_>
like chrome and shit have huge wins with LTO
<heat_>
clang too
<mjg>
i'm not claiming lto should be canned
<heat_>
linux... not quite, it's a mixed bag (everything you want to inline is already static inline or even __always_inline anyway)
<mjg>
i'm claiming a codebae which was not even profiled is not a candidate for lto
<mcrod>
i call crap on that
q3lont has joined #osdev
<mcrod>
I would probably wager that, while it depends onthe codebase, the benefits you get for 'free' are worth it
<heat_>
i agree but sometimes the wins are really too obvious. like rust for instance always does LTO by default or some weird shit like that
<heat_>
if you have a heavy C++ codebase you can probably safely enable it by default too, without measuring
<mjg>
you may get visibly faster, but you are still going to suck
foudfou has joined #osdev
<mcrod>
what defines "suck" here?
<mjg>
instead the thing to do is to check what is happening
<mcrod>
profiling is indeed critically important
<mjg>
right, so did you do it?
<mcrod>
i'm building LLVM
<mcrod>
which, as heat_ stated, has known LTO gains
<heat_>
lots of people think it's worth it to sacrifice build time in exchange for more readable/prettier/modular-er code
<heat_>
i don't but i'm also not a WORLD RENOWNED C PLUS PLUS EXPERT
<mcrod>
i don't know why a new project *wouldn't* use LTO unless their build times are extraordinarily bad
<heat_>
it's annoying, it's not a win in lots of cases, it's annoying, it takes a lot of time to go through, it's more bug prone, it's also annoying, it uses more memory
<heat_>
it's undebuggable
<mcrod>
as in, the resulting application or the the build uses more memory
<heat_>
2) is guaranteed, 1) depends (measure!)
<mcrod>
right
<mcrod>
i don't disagree that people should be pulling out profilers quite often
<heat_>
vmonyx supports LTO but I don't build with it on because I really value small build+test times
<mjg>
only LTO for the release
dude12312414 has joined #osdev
<mjg>
.. he
<mjg>
he
<mjg>
i'm sorry
<heat_>
what
<mcrod>
drunk
<mcrod>
so, maybe I should play elden ring
<mjg>
is adding LTO a ploy to justify elden ring time at work?
<mcrod>
no
<mjg>
openbsd uses code time pessimiztion
<mcrod>
openbsd is kinda weird
<heat_>
kinda
<Ermine>
pessimalisation
<heat_>
this beef is fucking PESSIMAL
<geist>
if only you used itanium
<mjg>
lto on itanium would be rad
<mjg>
just sayin
<mjg>
ahead of its time!
<heat_>
i bet cpu microcode probably gets LTOd
<heat_>
either that or it's a single source file
<geist>
hand tuned almost certainly, and thus probalby LTOed yeah
<geist>
in the sense that a human does it
<heat_>
i have a strong uneducated supposition that it's all automated exactly like a compiler
<heat_>
i really have no insight into microcode
<heat_>
am i wrong for doing symbolization as "symbolname+offsetinhex"
<heat_>
everyone else seems to do decimal offsets
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #osdev
<geist>
yeah modern microcode probably
<geist>
i was thinking more in terms of older stuff
q3lont has quit [Remote host closed the connection]
* heat_
turns on LTO and finds a bug in the new page allocator
<nikolar>
kek
<mcrod>
almost 2 hours now
foudfou has quit [Ping timeout: 240 seconds]
rnicholl1 has joined #osdev
awita has joined #osdev
danilogondolfo has quit [Remote host closed the connection]
andydude has quit [Quit: Leaving.]
andydude has joined #osdev
nikolar has quit [Server closed connection]
<heat_>
haha i was wrong, the page allocator is p e r f e c t
<heat_>
there was a bug in some unrelated bit of code that did vaddr - KERNEL_VIRTUAL_BASE and was never updated to take into account the physical ASLR offset
nikolar has joined #osdev
<heat_>
the radical memory layout change from using LTO must've made it sad
<zid>
what does one do with an hour, if not reddit, hmm
<zid>
My entire gameboy emulator gets inlined into main and called BITSET.n.23892
<heat_>
you also lose most of your observability by default (unless you go around and noinline things)
<zid>
That sounds like a "I fucked up my static/extern and need to now fix it" issue
<zid>
like the -fcommon change
foudfou has joined #osdev
<heat_>
how?
<zid>
how does it not
<zid>
if you want the magic viewing window, don't take the sight glass out
<heat_>
how can static/extern fix my __vm_handle_pf absorbing vm_handle_non_present_pf
<heat_>
both are normal non-inline functions that get inlined by LTO
<zid>
that's not a thing that needs fixing
<zid>
so dw
<heat_>
it is
<zid>
your tool just doesn't understand it needs to addr2line every opcode
<zid>
and create a reverse mapping
<heat_>
most tools do not interpret DWARF, they just assume the functions have logical meaning
<heat_>
it also sucks if ie i want to trace a single function using mcount patching. oh wait it's not present, it got inlined
<zid>
That's not how C works, smh
<zid>
stop breaking the execution environment
<heat_>
i also personally have 0 clue as to how LTO manages the stack, but i assume it does The Wrong Thing
<heat_>
that would be typical
<heat_>
if i call 3 functions that have stack frames of {200, 500, 1024} bytes, does inlining them get me a single stack frame of size 200 + 500 + 1024?
<geist>
in general i've seen the compiler do the generally Right Thing with regards to recycling stack space based on the lifetime of stuff
<heat_>
oh that's good at least
<geist>
but also in C++ since the language is pretty strict about when things go out of scope it helps if the programmer does the right thing
<zid>
LTO always does the right thing, you just want it to do the wrong thing :p
<zid>
so that your bizzare UB works
<zid>
bizarre
<zid>
that looks wrong both ways I give up
<zid>
strange.
<geist>
i think it's a case when there's no dsetructor or whatnot it can be more flexible about how it recycles stuff
<geist>
but in general i've seen stack usage go up with LTO, i think because it can inline and then blend the scope of things
<heat_>
hmm, interesting
<heat_>
like actual stack usage? top - sp? or just stack frame sizes?
<geist>
though really take that with a big grain of salt. totally depends on the codebase and the style
<geist>
stack frame sizes, since you may end up with larger functions
<geist>
overall stack usage is a more subtle question
<zid>
Oh I figured it out
<zid>
C() { A(); B(); }
<zid>
if both A() and B() inline, instead of C+A then C+B
<zid>
you end up with C+A+B
<geist>
right, but you can logically think of it as
<geist>
C() { { body of A } { body of B } }
<geist>
so it can and many times does recycle the same stack for the two scopes
<geist>
but then it also depends on how much freedom and how hard it merges the body of A and B
<geist>
i think if you have objects with strict lifetimes (ie, non trivial C++ objects) it has to be more strict, i think
<geist>
but this is the area that scares me the most about LTO, honestly. like does the inlined function act as an implicit compiler fence?
<geist>
ie, does it have to basically complete all of As stuff before doing B?
<zid>
It has to have the same semantics
<geist>
and if not, did you assume there was implicit barriers in there
<zid>
that's true of all optimizations
<zid>
but yea, it may show up mistakes that you didn't know you made
<zid>
(which is why I love LTO)
<geist>
explicit barriers makes sense: if A acquired and released a mutex, then that mutex routine would have had a compiler fence
<geist>
but if it didn't...
<geist>
say if A and B both write to global variablbes and you didn't otherwise CF them.. can the inlined A and B be moved out of order?
<geist>
without LTo you can get away with it because theres kinda an implicit CF with the function call
<zid>
I think it'd be the same as if it were allowed to reorder A() and B()
<zid>
it inherits the semantics it used to have
<geist>
right, so that sort of super non obvious thing can bite you
<geist>
like you should probably treat all functions as just snippets of code, almost a C macro, that can be plonked anywhere
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<zid>
It stays a sequence point at least
<zid>
so volatiles can't go around it
<geist>
the function call you mean?
<zid>
yea
<geist>
i'm not so sure about that
<zid>
function calls are sequence points, can't delete that
<zid>
that changes the semantics
<geist>
agreed, but i'm still not entirely sure it does that, for whatever reason
<zid>
it just compiles to sequence_point; inlined_version;
<geist>
otherwise it wouldn't be able to really blend the scope of inlined things, and i'm fairly certain i've seen it do that
<zid>
sequence points are huge barriers, just to things that don't cross them
<geist>
but maybe there are scenarios where it analyses what's going on and bends the rules
<zid>
aren't*
<zid>
volatiles being the main one
<geist>
ie, it senses that though it needs to do this, it can hoist things around because in *this or that* scenario it's okay
<geist>
i've definitely asked around about this exact thing to a lot of smarty compiler folks and no one really seems to have a solid answer
<zid>
It's required to do so, but knowing how to prove that it does it is hard
<geist>
right
<geist>
and like i said i think it can blend things a bit as long as it's harmless
<geist>
certainly and peephole optimize a bunch of it
<geist>
hoist various calculations and whatnot out of it, etc
<zid>
yea, because sequence points only stop optimizations about things that can't be observed to be different
<zid>
volatiles can be so they're barriers to them, etc
gildasio has quit [Remote host closed the connection]
<geist>
volatiles i think are pretty obvious, it's the non volatile stuff that worries me
<zid>
Then you're missing a volatile somewhere :D
gildasio has joined #osdev
<geist>
though i think in practice it's not much of an issue
<zid>
You should have the same worries you have when switching from -O0 to -O1
<geist>
and of course proper code with no UB shouldn't have this problem
<zid>
about it deleting redundant statements and reordering them
<geist>
oh sure i'm not saying it'll take perfect code and make it bad, i just worry about subtle stuff that's hard to notice that suddenly one day becomes a problem
<zid>
I just can't imagine a problem subtle enough that isn't also part of a gigantic big flashing barrier to begin with
* geist
shrugs
<zid>
like "Oh no, what if it reor- oh it's already volatile, because I needed those semantics to begin with, nvm"
<geist>
they pay me to worry about details, its what i do
<zid>
As in, it would already have absolutely exploded from the course details being wrong, rather than the hyperfine atomic groundstates being off by 1Hz
<zid>
coarse*
rnicholl1 has quit [Quit: My laptop has gone to sleep.]
klys has quit [Server closed connection]
klys has joined #osdev
foudfou has quit [Ping timeout: 240 seconds]
sham1 has joined #osdev
<vny>
Why is vsyscall mapped so high up in the address space? ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
<heat_>
because it was
<vny>
I always though stack occupies the highest address before the kernel space
<vny>
begins
<heat_>
then they realized it's a mistake so vdso is mapped in the normal user address space
<vny>
I see, is vsyscall not used anymore? heat_
<heat_>
no, it's old compat stuff
<heat_>
some distros don't compile it in anymore, we went through this a week ago or something
rnicholl1 has joined #osdev
<vny>
Ah, yes my production kerenl has it and my dev machine does not
<vny>
Thanks! Why was it deprecated? Looks like a cool feature
<heat_>
because the vdso is a lot better and more complete, and it doesn't entirely defeat ASLR
<bslsk05>
stackoverflow.com: c - What are vdso and vsyscall? - Stack Overflow
<nortti>
and only having space for four syscalls
<heat_>
there's also no way to check if vsyscall supports a given syscall
<heat_>
you have to hardcode it, just as you hardcode the vsyscall address
<vny>
Interesting, Feels like early attempts to do kerenl bypass
<heat_>
or you do some sort of architecture + uname version matching :)
<zid>
bookwormbookwrobmrowormboworoowkrmwoborook
<nortti>
didn't guess you'd be that stoked for a debian release
rnicholl1 has quit [Quit: My laptop has gone to sleep.]
<heat_>
debian is objectively boring
foudfou has joined #osdev
frkazoid333 has joined #osdev
<mcrod>
i am starting to regret this.
awita has quit [Ping timeout: 250 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
omnit3a has quit [Server closed connection]
omnit3a has joined #osdev
rnicholl1 has joined #osdev
jjuran has quit [Server closed connection]
jjuran has joined #osdev
jjuran has quit [Remote host closed the connection]
jjuran has joined #osdev
foudfou has quit [Ping timeout: 240 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<zid>
ahhh chapter was fucking *great*
Brain__ has quit [Server closed connection]
<zid>
but I can't fucking reddit thread about it :( :(
Brain__ has joined #osdev
slidercrank has quit [Ping timeout: 240 seconds]
andydude has quit [Ping timeout: 240 seconds]
radens has joined #osdev
<radens>
I'm booting a rpi0 (armv6, 32 bit) kernel in qemu. It seems to start up in the arm trustzone secure state. I'm not sure whether or not this is representative of the real hardware, but is there a way to safely check whether or not I am in the secure state, and if so leave it? It looks like the SCR register is not accessible from non-secure mode.
<heat_>
you mean armv7?
<zid>
rpi can boot 10 different ways depending on which boot blob you stop after I thought, from clever's rants :P
<zid>
bare metal, first bootloader, second bootloader, elevenses, lunch, etc
<heat_>
if i were to guess, it's booting you as the bootloader and not as a kernel
<heat_>
(but this is a complete guess)
<radens>
you know it might actually be a rpi1
<heat_>
the pi 0 has exactly the same SoC as the pi 1
<heat_>
while the pi zero 2 w has the same soc as the pi 3
<zid>
honzuki subreddit is now a link to their discord at least, but it's going BRRRRRRRRRR
<radens>
heat_: if it is the case that I'm being booted as the bootloader and not the kernel, do you how do I boot myself as a kernel? I got the initial boot stuff from the rpi bare bones tutorial
rnicholl1 has quit [Quit: My laptop has gone to sleep.]
<zid>
put your kernel on the sdcard fs that you'd use to boot a real rpi
<zid>
in place of its kernel
<zid>
keeping the boot crap
<zid>
if qemu supports that
<zid>
what we need, is clever
<heat_>
i would expect qemu-system-arm -machine raspi -kernel <yourkernel> to just work
<zid>
yea that seems likely
<zid>
that it just boots into the middle of a working state, and the hw that qemu emulates doesn't need initializing etc
<zid>
(like the dram)
<zid>
like, snapshot of "after the bootloader"
<radens>
I mean it works, it just drops me into a security state which I did not expect
<heat_>
right, so it doesn't work properly I think
<heat_>
in no way should you be seeing trustzone stuff, that's for your firmware
<heat_>
i could pick up the zeroes under the string
<heat_>
i know
<moon-child>
that's what the >> is for
<moon-child>
shift them off
<heat_>
hmm, that's an interesting idea
<heat_>
thanks i'll try it out
<moon-child>
or, hrm, I think you need to do the HASZERO comp and then shift
<heat_>
anyway that's not the point, the point is the horrible unrolling
<moon-child>
yeah llvm does that
<radens>
okay so if you feed qemu an elf file it basically boots you in firmware mode, but if you feed it a binary blob it assumes you're linux
<radens>
(for raspberry pis)
<radens>
and I had the wrong file in my makefile
awita has joined #osdev
deflated8837 has quit [Server closed connection]
deflated8837 has joined #osdev
<vny>
So I noticed something interesting when I was running GUPS benchmark https://en.wikipedia.org/wiki/Giga-updates_per_second In the /proc/pid/maps I notice /dev/zero taking the same size as the working set. Although nowhere in the GUPS code I see the allocated memory being zeroed. When is /dev/zero used?
<heat_>
mmap
<heat_>
moon-child, oh my god i have deadbrained and galaxybrained LTO codegen to show everyone
<heat_>
this is *horrible*
nvmd has joined #osdev
andydude has joined #osdev
<vny>
heat_: what do you mean? mmap(NULL, size * threads, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0); Does passing MAP_ANONYMOUS zero the mmeory before returning to user? Even if that's the case why does /dev/zero have a huge address range (7F6633A76480 to 7F8BB3662EC0)?
<heat_>
yes obviously
<heat_>
i dont know what your benchmark does but mmap /dev/zero is an old UNIX way to request MAP_ANONYMOUS memory pre-anonymous memory
m5zs7k has quit [Server closed connection]
<vny>
I see, didn't you earlier say map regions without names are the anonymous memory regions?
<heat_>
yes
<heat_>
so they're doing the old unix /dev/zero map I guess
<heat_>
they fucking converted all my unsigned longs into booleans and every access has a cmovvvvvvvvvvvvvvvvvvv
<heat_>
whatt eh fuck
<vny>
So the thing is I summed all the nameless regions and [heap] sizes from smap and it does come close to /dev/zero (which is the actual buffer size I had requested)
<moon-child>
hahahaha
<moon-child>
genius
bauen1 has quit [Ping timeout: 260 seconds]
<vny>
Is my above assumption wrong? I don't understand why though
awita has quit [Read error: Connection reset by peer]
<heat_>
vny, what does /dev/zero have to do with this
<heat_>
where are you seeing it
bauen1 has joined #osdev
<vny>
heat_: nothing, I do not expect /dev/zero to be the size of mmap length, on the contrary I am expecting the sum of sizes of nameless regions and [heap] will be equal to mmap length
<heat_>
where are you seeing it
<vny>
/proc/[pid]/smaps
<heat_>
if you're seeing /dev/zero there it's because someone mapped it
<vny>
If it's mapped (mmaped), shouldn't there be a nameless section indicating the mmaped region?
<heat_>
why would there?
bauen1 has quit [Ping timeout: 250 seconds]
<heat_>
they mapped a file, /dev/zero. the name of the region will show as /dev/zero
bauen1 has joined #osdev
<vny>
I checked the code, nowhere do they map /dev/zero or memset 0 on the mmaped memory. The only flags passed to mmap is PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS