<heat>
note that compiler-rt/libubsan/libasan are much larger and more complex than my implementations
<Griwes>
speaking of debugging, I should start looking at implementing a debug server in my OS, so I can actually track processes, because doing that manually has been a PITA so far
<Arsen>
i've decided that my next kernel ought to start with the debugger and proceed to other parts to prevent tearing my hair out
<FreeFull>
Rust doesn't do TBAA, so in that way it's more permissive than C and C++
<FreeFull>
You can just, go from *mut T to *mut U for arbitrary T and U, as long as you don't break some constraints
<FreeFull>
C++ might have something for doing this, but in C you'd have to memcpy
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 260 seconds]
dude12312414 has joined #osdev
netbsduser has quit [Ping timeout: 276 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<epony>
what's TBAA ?
<FreeFull>
Type-Based Aliasing Analysis
rustyy has quit [Ping timeout: 260 seconds]
rustyy has joined #osdev
navi has quit [Quit: WeeChat 4.0.4]
goliath has quit [Quit: SIGSEGV]
heat has quit [Ping timeout: 264 seconds]
netbsduser has joined #osdev
pounce has quit [Ping timeout: 256 seconds]
gog has quit [Ping timeout: 276 seconds]
zarock has quit [Ping timeout: 260 seconds]
pounce has joined #osdev
netbsduser has quit [Ping timeout: 256 seconds]
pounce has quit [Ping timeout: 264 seconds]
pounce has joined #osdev
netbsduser has joined #osdev
agent314 has joined #osdev
agent314 has quit [Client Quit]
agent314 has joined #osdev
pounce has quit [Ping timeout: 240 seconds]
netbsduser has quit [Ping timeout: 252 seconds]
\Test_User has quit [Quit: \Test_User]
\Test_User has joined #osdev
gabi-250_ has quit [Remote host closed the connection]
pounce has quit [Remote host closed the connection]
pounce has joined #osdev
navi has joined #osdev
Turn_Left has quit [Remote host closed the connection]
Turn_Left has joined #osdev
goliath has joined #osdev
<gog>
are you heptapilled
<gog>
why does it have 7 cores
xvmt has quit [Remote host closed the connection]
xvmt has joined #osdev
<zid>
cus one of them is broken so I turned it off
<heat>
zid, i have a C question
<zid>
ok
<heat>
void *ptr = (void *) 2;
<heat>
is this UB?
<zid>
int to void * conversion is idb
Matt|home has joined #osdev
<heat>
yes, but is (int) ptr guaranteed to reverse the conversion correctly? can a pointer just point to a random address like this?
<zid>
no
<zid>
void * might be smaller :D
<heat>
... ew
<zid>
or more realistically, might have tag bits or something
<zid>
or a dirty bit or something else
<zid>
but yea, it's like, "fine", cus it's all IDB and you won't find a I where the DB is weird enough for it to matter
<nortti>
I do believe on essentially every platfor, including cheri ones, you can go from intptr_t to void* to intptr_t
<zid>
yea inptr_t is the "int that is big enough to hold pointers"
<heat>
for context, i'm looking at void * as a Win32 HANDLE kind of thing. stash an integer in a void*
<zid>
yea windows does it a lot
<heat>
and it sounds kind of UB, probably is
<zid>
cus windows only runs on sane platforms
<goliath>
"An arbitrary integer may be converted to a pointer. The result is implementation-defined."
<heat>
and then an equivalent concern pops up for stuff like "void *ptr = (void *) ((unsigned long) otherptr | 1);" where you have a pointer that's pointing at a wrong thing with a wrong alignment
<zid>
Let's make an implementation where you have integer registers and address registers
<nortti>
m68k
<zid>
and if you load an address register with a value that isn't &1==0
<zid>
it faults
<nortti>
I think that's also m68k
<nortti>
oh, wait, nvm. setting register, not loading using it
<heat>
lets make an architecture that has all those properties but also took a huge fat L from x86
<heat>
wait, that's also m68k
<nortti>
but yeah, this has caused some funnies with functions returning ints punned as pointers or vice versa
* Ermine
reads phoronix comments
<Ermine>
> slowlaris
<zid>
The int / pointer punning's problem is usually the opposite way
<zid>
that you truncate a pointer by shuffling it through an int
<nortti>
aye
<Ermine>
(c) someone who didn't kiss girls
<heat>
Ermine, do not read phoronix comments
<nortti>
also losing provenance, in case your implementation cares about that
<nortti>
(e.g. cheri)
<zid>
oh, uintptr_t actually adds a guarentee, heat
<zid>
you're good to go on converting it back again losslessly
<Ermine>
heat: I've already done for today
<kof123>
i thought it was a "spotted the m j g" comment
<heat>
mjg does not comment on phoronix
<heat>
he's not that insane
<heat>
yet
<zid>
typedef HANDLE uintptr_t; NOBODY WILL EVER KNWO
epony has quit [Remote host closed the connection]
Turn_Left has joined #osdev
cross has joined #osdev
epony has joined #osdev
<Ermine>
please, be honest
<sham1>
My code is perfect
netbsduser has quit [Ping timeout: 264 seconds]
navi has quit [Ping timeout: 256 seconds]
navi has joined #osdev
netbsduser has joined #osdev
Left_Turn has joined #osdev
dude12312414 has joined #osdev
Turn_Left has quit [Ping timeout: 264 seconds]
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
<Ermine>
do you use rust?
<Matt|home>
why is it everytime i read something and go "ooh now i get it" and then i read the next sentence and then im back to confused depression
goliath has quit [Quit: SIGSEGV]
gog has quit [Quit: Konversation terminated!]
FreeFull has quit [Remote host closed the connection]
FreeFull has joined #osdev
navi has quit [Ping timeout: 268 seconds]
navi has joined #osdev
xenos1984 has quit [Ping timeout: 264 seconds]
xenos1984 has joined #osdev
FreeFull has quit [Quit: rebooting]
FreeFull has joined #osdev
gog has joined #osdev
yo0O0o has quit [Read error: Connection reset by peer]
netbsduser has quit [Ping timeout: 268 seconds]
netbsduser has joined #osdev
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
vdamewood has joined #osdev
xenos1984 has quit [Ping timeout: 264 seconds]
xenos1984 has joined #osdev
goliath has joined #osdev
<heat>
no one actually uses rust
<zid>
people *experiment* with rust
<zid>
Then they find out return 4; is an impossible program to write and give up
<heat>
no, i'm not sure a line of rust has ever been written
<heat>
maybe all lines of rust are just the one line of rust moving very quickly
<zid>
You know like how people say they went off to college, 'experimented' with being gay, but found out that they weren't, once they were staring down the barrel of a genital? It's like that, but rust.
<bl4ckb0ne>
how was college zid
<heat>
i'm memory-safety-curious 😳😈
gbowne1 has joined #osdev
<geist>
zid: silly, that's because you just type 4 at the end of the function
<geist>
duh.
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
<gog>
hi
<Matt|home>
afternoon :\
<gog>
:/
<gog>
you aight buddy?
<zid>
what's up gog
<Matt|home>
nah, just frustrated at my snail-like progress
<gog>
oh
<Matt|home>
i have 2 weeks to land a job so i can pretend i've been working and didn't immediately get fired
<gog>
why do you have two weeks?
<Matt|home>
because i was going to get paid on friday in 2 weeks before getting fired on day 1
<Matt|home>
so y'know
<gog>
oh
<Matt|home>
i haven't really told my family that i got fired
<gog>
why did you get fired?
<Matt|home>
so to that end i've decided to learn python c++ java kotlin and assembly to land an opdev job in two weeks
<Matt|home>
it's pathetic and i'd rather not say. i didn't do anything, just failed to realize something
<gog>
oh
<Matt|home>
but yes i got fired from dunkin donuts before i even started my shift so, go me
<gog>
i've been fired from many jobs
<gog>
every job i've been fired from was a bullshit job anyway
<gog>
you'll get something
<gog>
even if it's another bullshit job
<Matt|home>
yeah but i kinda told my folks my first deposit would be the 19th -_-
<gog>
oh
<Matt|home>
well, whatever
<gog>
what happens if you tell them the truth ASAP so the lie doesn't snowball and ruin your life for awhile?
<gog>
like is this about pride or are you in delicate circumstances
<Matt|home>
they'll be extremely disappointed in me, i'll have to deal with being yelled at for at least two hours, and they'll probably tell me to get out so they don't have to look at me
<Matt|home>
for a while
<gog>
your parents kinda sound like they suck ngl
<Matt|home>
to be fair im disappointed in me too. anyway, yeah im just focusing on OOP hoping to get a devops or IT job or something
<Matt|home>
and being sad and confused because of it
<gog>
not a bad plan
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<geist>
it's so cold here!
<geist>
well, cold for here, which my house is not prepared to deal with
<heat>
it's 13C here atm
<heat>
TL;DR i'm freezing
<geist>
yah it's like uh, -7C maybe?
<gog>
it's 7°C here
<geist>
problem is my heat pump doesn't work below freezing so the house just starts getting colder and colder
<geist>
about uh, 15C inside now?
<gog>
we're going to have high temps around -10°C next week
<gog>
idk if it's the same weather system
<gog>
but brrr
<heat>
brrrrrrrrr
<Matt|home>
fuck it, bad idea time. stressed
<zid>
heat are you proud of me, I didn't feed a troll, even though it means I didn't get to correct someone on the internet who was wrong
<zid>
mad self will
<heat>
congrats
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
heat_ has joined #osdev
heat has quit [Ping timeout: 260 seconds]
Starfoxxes has quit [Ping timeout: 256 seconds]
Starfoxxes has joined #osdev
bitoff has quit [Remote host closed the connection]
Matt|home has quit [Quit: Leaving]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
Gooberpatrol66 has quit [Ping timeout: 260 seconds]
Gooberpatrol66 has joined #osdev
heat has joined #osdev
heat_ has quit [Ping timeout: 264 seconds]
energizer_ is now known as energizer
Gooberpatrol66 has quit [Remote host closed the connection]
Gooberpatrol66 has joined #osdev
netbsduser has quit [Ping timeout: 240 seconds]
<mcrod>
hi
<zid>
mcdoor
<heat>
mcdonalds
<zid>
macdoogles
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 264 seconds]
Arthuria has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
heat has quit [Remote host closed the connection]
<mcrod>
ziddy
<mcrod>
zidster
heat has joined #osdev
<mcrod>
zidvicious
<zid>
It's pronounced zid, spelled out, like an infectious disease
<zid>
(no it isn't)
<heat>
zid sounds like a zfs thing ngl
<heat>
here at zfs we don't have inodes numbers, we have zids
<bslsk05>
herumi/xbyak - a JIT assembler for x86(IA-32)/x64(AMD64, x86-64) MMX/SSE/SSE2/SSE3/SSSE3/SSE4/FPU/AVX/AVX2/AVX-512 by C++ header (268 forks/1895 stargazers/BSD-3-Clause)
<heat>
Feature
<heat>
header file only
<heat>
hahahahahahahahahahahahahahaha
<heat>
hahaha
<heat>
hahahha
<heat>
ha
<mcrod>
although in truth, in my ignorance I don't understand what the overall problem is with writing an emitter
<mcrod>
for x86_64 I mean
<mcrod>
you output bytes, that's it
<heat>
what
<mcrod>
what
<mcrod>
what is your question fuckface
<heat>
that... that doesn't make any sense
<mcrod>
.
<heat>
an emitter outputs bytes yes, that's the point
<mcrod>
emitter.mov(whatever) -> bytes that make up `mov whatever` are emitted
<mcrod>
yes
<mcrod>
but I don't understand why some people say that's so hard here?
<heat>
here where?
<mcrod>
here as in
xenos1984 has quit [Read error: Connection reset by peer]
<mcrod>
in context, why people say doing exactly that is hard
<mcrod>
i can't make that any simpler
<heat>
bud the page you just linked shows you 35 different forms for the "MOV" mnemonic
<mcrod>
right
<heat>
and it's still missing some
<mcrod>
*but* as far as I know
<mcrod>
with some function overloading magic xkyak (AS FAR AS I KNOW) is able to select the correct mov shit to output while you just type a .mov()
<mcrod>
which, sounds great and intuitive
<mcrod>
how much of that I believe, I don't know
<heat>
x86 instructions don't even have a stable bitfield format across opcodes
<mcrod>
note that I have absolutely no idea how much any of this is true
<mcrod>
that's why i'm exercising caution
<sham1>
They used to, until Intel and AMD ruined the relatively simple design of 8008, 8080, and 8086