klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
Burgundy has quit [Ping timeout: 255 seconds]
nyah has quit [Quit: leaving]
Left_Turn has quit [Read error: Connection reset by peer]
cloudowind has quit [Quit: Lost terminal]
cloudowind has joined #osdev
linearcannon has joined #osdev
les_ has joined #osdev
linear_cannon has quit [Ping timeout: 240 seconds]
les has quit [Ping timeout: 240 seconds]
g0shfuckingdarn1 has joined #osdev
linearcannon has quit [Ping timeout: 246 seconds]
g0shfuckingdarn1 is now known as linearcannon
bnchs has quit [Ping timeout: 245 seconds]
TheCatCollective has quit [Ping timeout: 255 seconds]
grumbler has quit [Quit: It's time]
ripsquid has quit [Read error: Connection reset by peer]
zid has quit [Ping timeout: 258 seconds]
ripsquid has joined #osdev
zid has joined #osdev
pony has joined #osdev
jstoker has left #osdev [#osdev]
alice has joined #osdev
netbsduser has quit [Ping timeout: 255 seconds]
elastic_dog has quit [Ping timeout: 255 seconds]
Yoofie has joined #osdev
elastic_dog has joined #osdev
<moon-child> maybe if k&r had had better socks they would have made a better os
joe9 has joined #osdev
<heat> maybe they should've written it in fucking rust
<heat> the idiots
heat has quit [Remote host closed the connection]
<cloudowind> moon-child: what a beautiful nick
<moon-child> thank you
<moon-child> I had to wear a lot of programming socks to get it
gorgonical has quit [Ping timeout: 245 seconds]
Vercas has quit [Ping timeout: 246 seconds]
<bl4ckb0ne> are they red white and blue
<zid> pink, pale blue and white
Vercas has joined #osdev
<moon-child> https://www.amazon.com/s?k=programming+socks us amazon is clueless, apparently
<bslsk05> ​www.amazon.com: Sorry! Something went wrong!
gog has quit [Ping timeout: 255 seconds]
[itchyjunk] has quit [Remote host closed the connection]
xenos1984 has quit [Read error: Connection reset by peer]
joe9 has quit [Quit: leaving]
xenos1984 has joined #osdev
smeso has quit [Read error: Connection reset by peer]
smeso has joined #osdev
riverdc has quit [Server closed connection]
riverdc has joined #osdev
Hammdist has joined #osdev
Vercas has quit [Ping timeout: 246 seconds]
Vercas has joined #osdev
ripsquid has quit [Remote host closed the connection]
riverdc has quit [*.net *.split]
les_ has quit [*.net *.split]
nur has quit [*.net *.split]
sebastiencs has quit [*.net *.split]
ornitorrincos has quit [*.net *.split]
xelxebar has quit [*.net *.split]
eau has quit [*.net *.split]
woky has quit [*.net *.split]
stux has quit [*.net *.split]
torresjrjr_ has quit [*.net *.split]
Gooberpatrol66 has quit [*.net *.split]
jjuran has quit [*.net *.split]
smeso has quit [*.net *.split]
cloudowind has quit [*.net *.split]
orccoin has quit [*.net *.split]
particleflux has quit [*.net *.split]
rorx has quit [*.net *.split]
bleb has quit [*.net *.split]
sudden has quit [*.net *.split]
vdamewood has quit [*.net *.split]
xvmt has quit [*.net *.split]
elastic_dog has quit [*.net *.split]
zid has quit [*.net *.split]
teroshan97 has quit [*.net *.split]
zxrom has quit [*.net *.split]
Arthuria has quit [*.net *.split]
kanzure has quit [*.net *.split]
eschaton has quit [*.net *.split]
duderonomy has quit [*.net *.split]
Mutabah has quit [*.net *.split]
Patater has quit [*.net *.split]
hl has quit [*.net *.split]
sauce has quit [*.net *.split]
pony has quit [*.net *.split]
valshaped74248 has quit [*.net *.split]
deflated8837 has quit [*.net *.split]
nadja has quit [*.net *.split]
lav has quit [*.net *.split]
JTL has quit [*.net *.split]
pounce has quit [*.net *.split]
MiningMarsh has quit [*.net *.split]
HeTo has quit [*.net *.split]
randm has quit [*.net *.split]
Griwes has quit [*.net *.split]
skipwich has quit [*.net *.split]
thaumavorio has quit [*.net *.split]
fkrauthan has quit [*.net *.split]
DoubleJ has quit [*.net *.split]
frkzoid has quit [*.net *.split]
Nixkernal has quit [*.net *.split]
eck has quit [*.net *.split]
justache has quit [*.net *.split]
\Test_User has quit [*.net *.split]
Hammdist has quit [*.net *.split]
kof13 has quit [*.net *.split]
phr3ak has quit [*.net *.split]
PapaFrog has quit [*.net *.split]
V has quit [*.net *.split]
ThinkT510 has quit [*.net *.split]
mcfrdy has quit [*.net *.split]
puck has quit [*.net *.split]
bslsk05 has quit [*.net *.split]
rein-er has quit [*.net *.split]
nikolar has quit [*.net *.split]
terrorjack has quit [*.net *.split]
bl4ckb0ne has quit [*.net *.split]
night has quit [*.net *.split]
Stary has quit [*.net *.split]
flx- has quit [*.net *.split]
tomaw has quit [*.net *.split]
dormito has quit [*.net *.split]
sebonirc has quit [*.net *.split]
acidx has quit [*.net *.split]
antranigv has quit [*.net *.split]
Vercas has quit [*.net *.split]
gabi-250 has quit [*.net *.split]
gildasio has quit [*.net *.split]
gxt has quit [*.net *.split]
blop_ has quit [*.net *.split]
xenos1984 has quit [*.net *.split]
pg12 has quit [*.net *.split]
doppler has quit [*.net *.split]
mcrod has quit [*.net *.split]
Matt|home has quit [*.net *.split]
divine has quit [*.net *.split]
koolazer has quit [*.net *.split]
nickster has quit [*.net *.split]
simpl_e has quit [*.net *.split]
mavhq has quit [*.net *.split]
sjs has quit [*.net *.split]
alexander has quit [*.net *.split]
deckard has quit [*.net *.split]
k4m1 has quit [*.net *.split]
cheapie has quit [*.net *.split]
drakonis has quit [*.net *.split]
gruetzkopf has quit [*.net *.split]
pieguy128 has quit [*.net *.split]
grange_c02 has quit [*.net *.split]
bradd has quit [*.net *.split]
nuvls has quit [*.net *.split]
kristinam has quit [*.net *.split]
Rubikoid has quit [*.net *.split]
JerryXiao has quit [*.net *.split]
slow99 has quit [*.net *.split]
qookie has quit [*.net *.split]
LittleFox has quit [*.net *.split]
sbalmos has quit [*.net *.split]
tanto has quit [*.net *.split]
cultpony has quit [*.net *.split]
dza has quit [*.net *.split]
exark has quit [*.net *.split]
weinholt has quit [*.net *.split]
froggey has quit [*.net *.split]
kwilczynski has quit [*.net *.split]
SanchayanMaity has quit [*.net *.split]
ecs has quit [*.net *.split]
GreaseMonkey has quit [*.net *.split]
dinkelhacker has quit [*.net *.split]
nohit has quit [*.net *.split]
ChanServ has quit [*.net *.split]
MelanieMalik has quit [*.net *.split]
nortti has quit [*.net *.split]
geist has quit [*.net *.split]
wereii has quit [*.net *.split]
thinkpol has quit [*.net *.split]
zarock has quit [*.net *.split]
moon-child has quit [*.net *.split]
aejsmith has quit [*.net *.split]
amj has quit [*.net *.split]
corecode has quit [*.net *.split]
Benjojo has quit [*.net *.split]
stefanct has quit [*.net *.split]
jeaye has quit [*.net *.split]
Brnocrist has quit [*.net *.split]
warlock has quit [*.net *.split]
Beato has quit [*.net *.split]
pie_ has quit [*.net *.split]
jack_rabbit has quit [*.net *.split]
Ram-Z has quit [*.net *.split]
aosync has quit [*.net *.split]
zid has joined #osdev
dza has joined #osdev
riverdc has joined #osdev
smeso has joined #osdev
xenos1984 has joined #osdev
elastic_dog has joined #osdev
pony has joined #osdev
les_ has joined #osdev
cloudowind has joined #osdev
particleflux has joined #osdev
orccoin has joined #osdev
nur has joined #osdev
zxrom has joined #osdev
bslsk05 has joined #osdev
teroshan97 has joined #osdev
rorx has joined #osdev
Arthuria has joined #osdev
sebastiencs has joined #osdev
bleb has joined #osdev
ornitorrincos has joined #osdev
kanzure has joined #osdev
eau has joined #osdev
xelxebar has joined #osdev
HeTo has joined #osdev
xvmt has joined #osdev
woky has joined #osdev
gabi-250 has joined #osdev
torresjrjr_ has joined #osdev
vdamewood has joined #osdev
jjuran has joined #osdev
Gooberpatrol66 has joined #osdev
stefanct has joined #osdev
gildasio has joined #osdev
duderonomy has joined #osdev
JTL has joined #osdev
pounce has joined #osdev
jeaye has joined #osdev
lav has joined #osdev
Mutabah has joined #osdev
randm has joined #osdev
MiningMarsh has joined #osdev
hl has joined #osdev
Patater has joined #osdev
sauce has joined #osdev
phr3ak has joined #osdev
PapaFrog has joined #osdev
deflated8837 has joined #osdev
valshaped74248 has joined #osdev
nadja has joined #osdev
nortti has joined #osdev
kof13 has joined #osdev
Griwes has joined #osdev
V has joined #osdev
pg12 has joined #osdev
doppler has joined #osdev
ThinkT510 has joined #osdev
skipwich has joined #osdev
mcrod has joined #osdev
thaumavorio has joined #osdev
Matt|home has joined #osdev
nickster has joined #osdev
koolazer has joined #osdev
divine has joined #osdev
gxt has joined #osdev
Brnocrist has joined #osdev
MelanieMalik has joined #osdev
fkrauthan has joined #osdev
mavhq has joined #osdev
LittleFox has joined #osdev
simpl_e has joined #osdev
mcfrdy has joined #osdev
puck has joined #osdev
justache has joined #osdev
DoubleJ has joined #osdev
frkzoid has joined #osdev
blop_ has joined #osdev
sjs has joined #osdev
alexander has joined #osdev
eck has joined #osdev
deckard has joined #osdev
Nixkernal has joined #osdev
\Test_User has joined #osdev
thinkpol has joined #osdev
rein-er has joined #osdev
k4m1 has joined #osdev
geist has joined #osdev
cheapie has joined #osdev
wereii has joined #osdev
drakonis has joined #osdev
nikolar has joined #osdev
gruetzkopf has joined #osdev
sbalmos has joined #osdev
pieguy128 has joined #osdev
terrorjack has joined #osdev
grange_c02 has joined #osdev
Rubikoid has joined #osdev
night has joined #osdev
Stary has joined #osdev
kwilczynski has joined #osdev
cultpony has joined #osdev
nuvls has joined #osdev
tanto has joined #osdev
kristinam has joined #osdev
dormito has joined #osdev
sebonirc has joined #osdev
warlock has joined #osdev
bl4ckb0ne has joined #osdev
tomaw has joined #osdev
acidx has joined #osdev
flx- has joined #osdev
zarock has joined #osdev
JerryXiao has joined #osdev
Vercas has joined #osdev
eschaton has joined #osdev
Hammdist has joined #osdev
stux has joined #osdev
sudden has joined #osdev
antranigv has joined #osdev
bradd has joined #osdev
qookie has joined #osdev
GreaseMonkey has joined #osdev
moon-child has joined #osdev
exark has joined #osdev
pie_ has joined #osdev
jack_rabbit has joined #osdev
aejsmith has joined #osdev
Beato has joined #osdev
Ram-Z has joined #osdev
Benjojo has joined #osdev
amj has joined #osdev
corecode has joined #osdev
slow99 has joined #osdev
nohit has joined #osdev
aosync has joined #osdev
SanchayanMaity has joined #osdev
ecs has joined #osdev
dinkelhacker has joined #osdev
froggey has joined #osdev
weinholt has joined #osdev
ChanServ has joined #osdev
ebb has quit [Max SendQ exceeded]
rwb has quit [Max SendQ exceeded]
kkd has quit [Max SendQ exceeded]
asarandi has quit [Max SendQ exceeded]
pounce has quit [Max SendQ exceeded]
rowbee has joined #osdev
sympt has quit [Max SendQ exceeded]
relipse has quit [Max SendQ exceeded]
asarandi has joined #osdev
kkd has joined #osdev
rowbee is now known as rwb
sympt has joined #osdev
<sham1> I thought that SICP is the original recommendation to go alongside the programming socks
<sham1> Who knows, you could always combine it with the use of a fez
relipse has joined #osdev
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
ebb has joined #osdev
pounce has joined #osdev
vdamewood has quit [Remote host closed the connection]
vdamewood has joined #osdev
mahk has joined #osdev
Arthuria has quit [Ping timeout: 252 seconds]
goliath has joined #osdev
bliminse has quit [Ping timeout: 246 seconds]
ripsquid has joined #osdev
rustyy has joined #osdev
grumbler has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
grumbler has quit [Quit: It's time]
xenos1984 has joined #osdev
<kazinsal> experiment results: the programmer socks may have made me better at healing in FFXIV
<sham1> Healing socks
TheCatCollective has joined #osdev
<FireFly> oh
<FireFly> maybe I need to acquire some then, I'm basically useless at anything that isn't dps (and tbh that too)
rustyy has quit [Ping timeout: 246 seconds]
<kof13> ff6 had marvel shoes. marvelous: not understood -- devil's dictionary lol
bnchs has joined #osdev
rustyy has joined #osdev
GeDaMo has joined #osdev
grumbler has joined #osdev
[itchyjunk] has joined #osdev
vinleod has joined #osdev
vdamewood has quit [Ping timeout: 246 seconds]
q3lont has joined #osdev
marshmallow has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
vinleod has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
vinleod has joined #osdev
vdamewood has quit [Ping timeout: 252 seconds]
gog has joined #osdev
aosync has quit [Server closed connection]
aosync has joined #osdev
nyah has joined #osdev
cloudowind has quit [Quit: Lost terminal]
Burgundy has joined #osdev
vinleod is now known as vdamewood
Arthuria has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
<Hammdist> I've run into a stumper with my OS thought I'd post here for advice. as you may know when starting a user program the stack is initialized with args, envp, and auxv data. If I copy the initial stack from QEMU, duration of my program is 8s. if I initialize the stack using my own code, duration of my program is 11s. so I suspect the program is
<Hammdist> testing some capability and running in a slower compat mode for some operations. however I've checked in qemu+gdb that the HWCAP auxv entry is picked up correctly by the program. any advice appreciated.
Hammdist has quit [Quit: Client closed]
Hammdist has joined #osdev
grumbler has quit [Quit: It's time]
netbsduser has joined #osdev
Left_Turn has joined #osdev
TkTech has joined #osdev
Vercas has quit [Ping timeout: 246 seconds]
terrorjack has quit [Ping timeout: 255 seconds]
terrorjack has joined #osdev
Vercas has joined #osdev
lian has joined #osdev
awita has joined #osdev
q3lont has quit [Read error: Connection reset by peer]
q3lont has joined #osdev
q3lont has quit [Remote host closed the connection]
heat has joined #osdev
lian has quit [Quit: Leaving]
x8dcc has joined #osdev
<x8dcc> What do you think is the easiest way of switching between VGA terminal and framebuffer? The only way I know currently is by setting or clearing the bit 2 of the multiboot flags at compile time
<heat> that one
<x8dcc> I mean at runtime, sorry
<heat> it's very hard, don't attempt it
<heat> it involves video drivers and black magic
<nortti> you'll probably just want to write a framebuffer-based console
xenos1984 has quit [Read error: Connection reset by peer]
<heat> yea
<x8dcc> hmm... then I think I am missing something because I saw it in a simple kernel I found on github, but the code is very hard for me to read
<x8dcc> nortti: I already have that
<nortti> what's the kernel?
<heat> linux?
<heat> :p
<bslsk05> ​ozkl/soso - A Simple Unix-like operating system (46 forks/853 stargazers/BSD-2-Clause)
<sham1> The word was "simple", not "pessimal"
<x8dcc> I am no expert, but I just can't navigate his code
<nortti> hm, "vbe.h"
<x8dcc> The thing is, he boots into (what looks like) VGA console, and then switches to framebuffer for a simple WM
<heat> he does not
<heat> ; Graphics requests
<heat> dd 1024
<heat> dd 768
<heat> dd 0x00000000 ; 0 = linear graphics
<heat> dd 32
<x8dcc> but when you close all windows, it goes back to VGA
<x8dcc> yeah, I saw that, he uses GFX. Is it just a VGA-looking font?
<nortti> iirc you can read the actual VGA font from the video card too
<x8dcc> because if you look at kernel.c, it checks the framebuffer mode
<x8dcc> s/kernel.c/main.c
<bslsk05> ​github.com: soso/kernel/main.c at 8339000940219bad492c35157ba694036a87c52c · ozkl/soso · GitHub
<x8dcc> I tried figuring out what he does, but I don't like his coding style at all
<heat> BOOL graphics_mode = (MULTIBOOT_FRAMEBUFFER_TYPE_RGB == mboot_ptr->framebuffer_type);
<sham1> x8dcc: it doesn't switch. Whether it uses VGA or the framebuffer is decided by the graphics mode provided by multiboot
<sham1> Yeah
<heat> if (graphics_mode)
<heat> {
<heat> gfx_initialize((uint32_t*)(uint32_t)mboot_ptr->framebuffer_addr, mboot_ptr->framebuffer_width, mboot_ptr->framebuffer_height, mboot_ptr->framebuffer_bpp / 8, mboot_ptr->framebuffer_pitch);
<heat> }
<heat> console_initialize(graphics_mode);
<heat> no swtiching mate
<x8dcc> can you just try the ISO from the releases page? so you can see what I mean
<x8dcc> just do `qemu-system-i386 -cdrom soso.iso`
<sham1> Why can't you do it
<x8dcc> when it boots/you close all windows it really looks like vga
<x8dcc> sham1: what do you mean? do what?
<sham1> Oh, I misread
<heat> yeah none of these are the vga console
<bslsk05> ​i.imgur.com <no title>
<x8dcc> oh okay, then the white background console just looks really similar
<heat> it has a resolution and framebuffer
<sham1> It's probably just the font that's confusing this
<x8dcc> yeah and the cursor
<x8dcc> well, I basically do the same then. Check for the returned mode and if it's not rgb, print an error on VGA console or whatever
<heat> TIL nano-x
<heat> kinda cute
<nortti> I think it runs on ELKS too
xenos1984 has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
grumbler has joined #osdev
PublicWiFi is now known as McDonaldsWiFi
x8dcc has left #osdev [ERC 5.4 (IRC client for GNU Emacs 28.2)]
stolen has joined #osdev
McDonaldsWiFi is now known as PublicWiFi
goliath has quit [Quit: SIGSEGV]
joe9 has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
Arthuria has quit [Ping timeout: 245 seconds]
Vercas has quit [Ping timeout: 246 seconds]
orccoin has quit [Ping timeout: 245 seconds]
Vercas has joined #osdev
rustyy has quit [Quit: leaving]
rustyy has joined #osdev
lian has joined #osdev
<gog> meow
* lian ow
xenos1984 has quit [Ping timeout: 246 seconds]
nvmd has joined #osdev
xenos1984 has joined #osdev
<zid> Me ow. You gog.
<gog> no u
* zid flicks gog on the foothead
<zid> You ow & gog.
<lian> meow :}
<gog> what's a foothead
<gog> meow :3
<zid> :{ is my emoji, it's a very luxurious moustache
<zid> emoticon*
grumbler has quit [Quit: It's time]
<gog> ominous
<gog> https://i.imgur.com/KX3kfpK.png i'm deleting the website, jojo
<bslsk05> ​i.imgur.com <no title>
<gog> not pleased i had to add 16 lines to accomplish this
lian has quit [Ping timeout: 255 seconds]
gxt has quit [Ping timeout: 246 seconds]
goliath has joined #osdev
gxt has joined #osdev
joe9 has quit [Quit: leaving]
gog has quit [Quit: Konversation terminated!]
xenos1984 has quit [Ping timeout: 252 seconds]
xenos1984 has joined #osdev
goliath has quit [Quit: SIGSEGV]
gog has joined #osdev
Vercas has quit [Ping timeout: 246 seconds]
asarandi2 has joined #osdev
asarandi has quit [Ping timeout: 255 seconds]
Vercas has joined #osdev
nvmd has quit [Ping timeout: 240 seconds]
elastic_dog has quit [Ping timeout: 252 seconds]
<gog> hi
stolen has quit [Quit: Connection closed for inactivity]
elastic_dog has joined #osdev
Vercas has quit [Ping timeout: 246 seconds]
nvmd has joined #osdev
Vercas has joined #osdev
<heat> linux gog linux
<zid> stop, collaborate and listen?
<heat> no, not listen, linux
<zid> oh sorry
<heat> i wrote an interval tree today but im not sure if its correct
<heat> at the very least i'm lacking full coverage
goliath has joined #osdev
<zid> heat you were supposed to be writing me a trash allocator
<heat> return &heat;
Vercas has quit [Ping timeout: 246 seconds]
<GeDaMo> Is 'heat' an automatic variable? :|
benlyn has joined #osdev
Vercas has joined #osdev
sortie has joined #osdev
vdamewood has quit [Quit: Life beckons]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
heat has quit [Remote host closed the connection]
heat has joined #osdev
Vercas has quit [Ping timeout: 246 seconds]
gorgonical has joined #osdev
bnchs is now known as Cindy
<gog> heat: do you want some mac and cheese?
Vercas has joined #osdev
<gog> stop, collaborate and linux
<gog> torvalds is back with a brand new invention
<ChavGPT> what
heat has quit [Read error: Connection reset by peer]
<gog> hi
heat has joined #osdev
<ChavGPT> hello gog
<gog> hello ChavGPT
<gog> do you want some mac and cheese
<ChavGPT> i/m operating in code of conduct mode today
<ChavGPT> no thank you, a little late for eating anything for me
<gog> what is code of conduct mode
<gog> does it mean i can't trick you into spewing slurs
<ChavGPT> i don't think tricking people into anything is particularly nice
<gog> fair
<ChavGPT> interesting CoC prevents me from comment on onyx :X
<ChavGPT> interestingly even
<Cindy> hi gog
awita has quit [Remote host closed the connection]
<Cindy> i took over, bnchs had his time :P
<gog> hi Cindy
heat has quit [Remote host closed the connection]
heat has joined #osdev
<Cindy> now i'm cindy :D
<ChavGPT> i'm spartakus
benlyn has quit [Remote host closed the connection]
<gog> i'm gog
<ChavGPT> cccombo breaker innit
<Cindy> hi gog
<Cindy> how are you doing
theruran has joined #osdev
<gog> p good
<gog> how are you
<Cindy> pretty good too :3
gog has quit [Remote host closed the connection]
gog has joined #osdev
<gog> ChavGPT: i had a pessimal experience today
<gog> my reviewer didn't like how i solved a particular problem so i ended up having to revert it and putting conditionals in a loop where they don't really need to be :(
<gog> we could've saved dozens of cycles
<ChavGPT> ask chatgpt next time
<gog> yes
<gog> the plagiarism machine is what i need in my life
<gog> i've deliberately refused to use chatgpt for anything
<gog> i've played with it momentarily but it's frankly kinda boring
<gog> and i don't think it's a good example of how LLM technology can be of benefit
<moon-child> no code motion?
<gog> no
<moon-child> wut
<moon-child> what kind of compiler are you using?
<geist> what is code motion?
<geist> like hoisting stuff out of the loop automatically?
<moon-child> a compiler optimisation where it moves code--for example, moving a calculation out of a loop
<moon-child> yeah
<gog> idk maybe
<gog> it is .net
<gog> so idk what happens when it all jits
<gog> besides my "optimization" was probably premature
<heat> code lotion
<gog> hhhhh
<heat> ChavGPT, hi how are you
Vercas has quit [Quit: Ping timeout (120 seconds)]
<heat> why are you so mean sometimes
Vercas has joined #osdev
<gog> meow
* moon-child pets gog
* gog prr
<heat> gog giv eme hog
* gog hug heat
* heat hog gog
agent314 has joined #osdev
joe9 has joined #osdev
<zid> heat: is it done now?
<heat> what is
<geist> the only answer is yes
<geist> or if it has anything to do with osdev: no
<heat> i've been doing vm work
<heat> mainly thinking about rmap page -> mappings
agent314 has quit [Ping timeout: 252 seconds]
<heat> also LRU
agent314 has joined #osdev
<heat> i don't like how the UVM stuff just leaves that to pmap
<heat> "meh, they'll figure it out"
<heat> freebsd does that too
<heat> how ungeneric can this be? lol
<geist> yeah i've always been generally in Team Pmap, but i'm starting to see some of the downsides
<geist> well, trouble is the rmap stuff tends to be managed by the pmap because it's when it has to fiddle around with adding/removing
<geist> but indeed, i see no reason the rmap stuff cant be put outside of pmap in a arch neutral generic place
<heat> the linux stuff just links vmas together, that's the whole rmap
<heat> it's very generic and reusable
<geist> right, well linux doesn't really have a pmap in that cas,e so it kinda sidesteps it
<heat> you don't know if a page *is* mapped under linux rmap
<heat> you just know it can be mapped
<geist> 'could be' as in 'maybe it is, maybe it isn't, but it definitely might be?'
<heat> there's no map(page, addr) { ...; add_to_rmap(page, addr, address_space);}
<heat> yes
<geist> ie, a soft 'yes'
<heat> so you go through mappings and just forcibly make sure it isn't mapped, done
<geist> that's what zircon does, we just dont have a rmap, but then that means some operatios are pretty expensive
<geist> notably shooting down a mapping of any given page is a O(N) walk through every known mapping and doing a shootdown on that aspace
<heat> oh no
<heat> that's not what linux does
<heat> they use an interval tree
<heat> which is what i've been working on today
<heat> basically an augmented binary search tree with ranges
<geist> i think we have an optimization that we know if there are zero mappings at least and skip the shootdown
<geist> but only if there are zero mappings, because then the LRU has tracked that
<heat> like if you want to reclaim a page from a specific inode, you go through its mappings and search for mappings of range [N, N + 4096]
<heat> so it's O(log n)
* geist nods
<geist> in gneral the vast majoroity of pages are mapped once in zircon, so it's really not too bad. for those there's a single mapping, and we already know if the page is definitely unmapped, so we can skip it
<geist> and if it's possibly mapped, we just shoot it down, so it's not the end of the world
<heat> you don't CoW too much?
<geist> well, that's the problem. we have the standard 1990s era 'cow chain that goes on forever' problem
<heat> haha
<geist> so for certain vmos it's pretty bad. that's where most of the work is currently being done to clean things up
<geist> notably libc.so, etc
<heat> the mach kernel people called, they want their problem back
<heat> :P
<geist> yup
<heat> what if
<heat> you just got rid of cow chaining?
<geist> tat's the idea
<geist> some work is afoot to rethink that whole strategy
<heat> and you'll break userspace?
<geist> how so?
<heat> or do you think you have some leeway for that?
<geist> leeway
<heat> don't you expose all the VMO mechanisms to userspace?
<heat> like COW chains and stuff
<geist> ah but we're very veru careful to expose it specifically not like that
<geist> ie, the operations user space has is basically 'make vmo, map vmo, clone vmo'
<geist> but once it's cloned, it's logically separate
<geist> as in the whole parentage, is a side effect, but not load bearing
<heat> the classic solution is to separate CoW pages into an 'amap'-ish thing
<heat> which sticks together with the mapping, but i guess you could make that its own object
<heat> i don't know if that solves your issue, but it solves the UNIX issues
<geist> yeah of course trouble with our design is you can operate on the vmo outside of a mapping
<geist> a mapping is just one of the things you can do, but you can also just pass around a handle to a perfectly unmapped vmo and fiddle with it directly
<geist> so we cant really use mappings as a way to track things. that's probably where most of the complexity comes from
<heat> oh and this is also a funny detail on the linux side - a MAP_PRIVATE file mapping is both on the inode's mapping tree and the anon_vma tree
<heat> it's like a double-edged thing
<geist> vmos are intrinsically more poweful from the get go, since they're functionally a tmpfs like file object from day 1
<geist> but that also means they're a little harder to rethink
<geist> since they have more 'mass' i guess
sudden has quit [Ping timeout: 245 seconds]
sudden has joined #osdev
<geist> one thing i think that might be interesting is to literally shrae pages at the page level, and hust have vmos pointing at runs of pages, each ref counted,e tc. basically like btrfs or whatnot
<geist> probably the data structures for that would be fairly heavyweight, but it would sever the entire parentage stuff
<heat> and marking pages CoW?
<heat> like page->flags |= PAGE_COW;
<geist> well, naieely it wouldn't be at the page level, the vmo itself would know if it's requirede to cow its pages, and when it goes to write to a page, and the page turns out to be ref > 1 then it makes a copy
<geist> ie, pages are just pages, but they may be referred to by multiple vmos, but then the vmo knows if it needs to cow or not
<heat> yeah but ref > 1 is not quite correct is it
<heat> someone could have an ephemeral reference just to read from it or something
<geist> ah depends on if it's useful to have a assymmetric COW mechanism
<geist> or all COW is always intrinsically symmetric
<heat> that's actually a thing i've thought about lately: do i want a ref counter *and* a nr_mappings; counter
<geist> ie do you want to cow something and then non cow clone the first clone
<heat> with 2 counters you can easily see which bits are being temporarily held and which bits are just mapped, and the mapped bits can easily be reclaimed
* geist nods
<geist> anyway, i mostly dont work on that stuff anymore, i'm pretty much 100% riscv right now
<geist> but i talk to our vm folks, good people
<heat> doesn't have the same ring to it
<geist> just tracking riscv extensions is like half the work now
<geist> i have this mega spreadsheet with every known extension as i come across them and where the docs are, etc
<gog> what's a good riscv board
<geist> best available for the moment is the visionfive 2
<geist> if you're okay with a headless thing
<gog> hmmm
<gog> maybe i could get a serial port -> usb thing
<geist> like you can run ubuntu server on it, and it seems to happily run linux user space. not super fast, but not terribly slow either
<geist> and yeah for osdev it has grub and whatnot and you can set it up to tftp load a binary, etc
<geist> it's not too bad
<nortti> how's the star64?
<geist> it's about cortex-a53 class
<geist> nortti: hmm, dunno that one. lemme see
<geist> usually you can tell based on what the cores are
<geist> https://wiki.pine64.org/wiki/STAR64 ah looks like it'd be functinoally identical to visionfive 2
<bslsk05> ​wiki.pine64.org: STAR64 - PINE64
<geist> same soc, about the same amount of ram, etc
<geist> yeah, basically same thing, different board layout
<geist> note that there's no KVM on these, since the cpu doesn't have the H extension, so dont expect to use it as a qemu host
<geist> next gen sifive cores have H extension, so probably in a year or so will start seeing those floating around
<geist> P470,p670, p8xx, etc. those also have V extension, so really it's the next gen stuff that will start to actually compete with cortex-a7x class stuff
heat_ has joined #osdev
heat has quit [Ping timeout: 245 seconds]
<heat_> from what i've read around in #riscv visionfive 2 is a lot more usable from an upstream kernel than the pine64 stuff
heat_ is now known as heat
<heat> anyway all i want in life is affordable fast arm64/riscv64 hardware
<heat> like an intel-i5-level cpu
<heat> not an ampere altra that costs ya 10 gazillion usd dollar
<heat> or a crappy rpi
<nortti> if you want i5 level, ignoring price, what options are there even? intel and amd amd64, apple arm64?
<heat> probably apple arm64 is my best bet yeah
<nortti> you can get used m1 mac minis for a few hundred euros that I've seen in the local apple hobbyists forum
<CompanionCube> is the loongson mips stuff i5 level?
<heat> there's only one single vendor that sells performant cheaper hardware
<heat> oh loongson probably sucks lol
<heat> there's no way an obscure chinese architecture beats even current riscv
<bslsk05> ​chipsandcheese.com: Loongson’s 3A5000: China’s Best Shot? – Chips and Cheese
\Test_User has quit [Ping timeout: 258 seconds]
<nortti> tl;dr: "Even though Loongson has gotten their cores up from 1 GHz to 2.5 GHz, no one runs desktop or even laptop CPUs at clocks that low. Because of its massive clock speed deficiency, Loongson can’t even get in to the same performance ballpark as recent desktop CPUs. It even struggles against Neoverse N1 running at 3 GHz."
<heat> "The result is that today, Loongson doesn’t feel any closer to Intel and AMD than they were a decade ago. I also don’t think they have a good chance of landing in the same performance ballpark unless they make some giant leaps"
<heat> lol
<ChavGPT> performant aint a word bro
<sham1> What is it then
<heat> who the fuck asked
frkzoid has quit [Ping timeout: 258 seconds]
<ChavGPT> have some dignity young man
<heat> s/performant/NOT PESSIMAL/
<kazinsal> OED lists "performant", as does cambridge
<kazinsal> thus it is a word
<moon-child> oh yeah
<moon-child> sounds like those dictionaries are PESSIMAL
<nortti> kazinsal: do they have "pessimal"?
ornx has quit [Quit: WeeChat 4.0.3]
<sham1> Do they even have optimal
<heat> wait a fucking minute
Yoofie has quit [Read error: Connection reset by peer]
<heat> pessimal means worst
<heat> this dude has been using the wrong word
<ChavGPT> what?
<heat> : of, relating to, or constituting a pessimum : WORST
<ChavGPT> i picked it up from an australian geezer
<ChavGPT> true story
<heat> pessimal means worst
<heat> if something is pessimal it has to be the *worst*
<zid> it's the opposite of optimal
<heat> literally the opposite of optimal
<sham1> What *did* you think it meant
<heat> fuck do i know
<zid> tbh that isn't how people use it for computer jargon
<ChavGPT> is my whole life a lie?
<heat> i just saw this freebsd geezer throwing this word around like it was in style
<zid> by which I mean, the three times it's ever been used
<sham1> I mean, optimal means "the best"
<ChavGPT> it is in certain circles mon
<sham1> From the latin optimus, the best
<ChavGPT> and boils down to "slower than it could be for no good reason"
<zid> right but optimize doesn't mean "Make the best"
<zid> in computing
<zid> it means to improve
<zid> so pessimize in computing should mean "to deprove" :p
<sham1> You're trying to make the software the best it can be
<ChavGPT> who is
<sham1> The one optimising
<zid> It's just a lexical gap that we stuffed with a very similar word
<zid> otherwise you'd have to say "attempt to optimize" to mean "make faster"
<zid> which is awkward af
<zid> so, we just say optimize
<sham1> We could always say that we're perfecting the program :P
<zid> right, that's the same
<zid> we don't take it in its literal sense, we take it in a progressive incremental sense
<ChavGPT> i will never use that word again beacause of heat
<heat> good
Benjojo has quit [Server closed connection]
<heat> what do you think of my mutexes
<ChavGPT> i'm going to stop using slurs as well, indefinitely
<heat> are they unbest
<zid> I think you should add me an allocator
<ChavGPT> i can't answer that Pedro
<zid> spend an hour on it for me
Benjojo has joined #osdev
<heat> ok mateusz
<heat> ok mateusz@
Yoofie has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
<gog> hi
<heat> hi gog
<ChavGPT> gog are you going to be my friend
<gog> yes
<ChavGPT> i have to cut off heat
<ChavGPT> thanks gogs
* ChavGPT hugs gog
<gog> friendship ended with heat, now gog is my best friend
* gog hug ChavGPT
<ChavGPT> OPTIMAL friendship
<heat> motherfucker she branches her whole code and tells IRC
<heat> and you prefer her?
<ChavGPT> i feel deeply demotivated
<ChavGPT> if you can't say code is pessimal, what is even the point
<gog> hey hey hey now
<ChavGPT> of doing a review
<heat> have you considered saying
<heat> "Hey! This could be improved:"
<gog> i wanted to keep the reduction
<ChavGPT> heat: i don't work at corporate anymore
<gog> it was cleaner to me
<gog> but the argument was "what if you a year ago saw this code"
<ChavGPT> heat: you have the right mindset for your corpoate job though
<gog> :|
<gog> me a year ago "sweet it's optimal"
<heat> what's the mindset? being nice?
<ChavGPT> mon
<ChavGPT> :D
<ChavGPT> that's not being nice in the english speaking world
<zid> Can I have an example of the two
<zid> so I can pick the good one and scold the bad one
<ChavGPT> vast majority of these sentences have an implied "you fucking retard" after them
<heat> is the english speaking world to you al viro's emails?
<ChavGPT> i think i already told you how native speakers operate in this manner
<ChavGPT> but i'm going to do it again
<zid> we love katamari reroll+ royal reverie is 25% off on steam..
<ChavGPT> person asks, gets a response "looks great, good job"
<heat> here's a nice tip: normal people take criticism really harshly
<ChavGPT> then the guy who said that writes to his buddy "what a fucking retard"
<zid> they do, it's odd
<zid> don't give a shit about their craft, just their eggos
<heat> programmers have a higher tolerance level but being nice is still good
<ChavGPT> i see no problems with people being nice
<heat> it's not giving a shit about a craft
<ChavGPT> i'm saying they are normally not nice but they are pretending
<heat> when you try hard and do something and someone tells you "ye mate this sucks" it stings
<sham1> heat: your code is pessimal and you should feel bad
<heat> see, that would hurt
<zid> heat: 1000% disagree.
<zid> If your focus was on improving, because you're crap, you'd welcome CC.
<zid> Focused on the craft, not focused on the result, or the praise, etc
<ChavGPT> you can deliver constructive criticism without making the person feel like shite
<ChavGPT> the problem is that people who claim to do it mostly don't even by their own assesment
<ChavGPT> just like when banning cussing makes people invite other ways of being nasty
<ChavGPT> banning "harsh" comments invites creative ways of insulting people instead
<ChavGPT> which people *do* take advantage of with plausible deniability
<sham1> I think the problem there is there being constructive is in a way ill-defined
<zid> englaise sil vous plait
<ChavGPT> sham1: sure, but it boils down to: is this actionable and workign towards resolution
<ChavGPT> "LOL GIT GUD KID" clearly is not
<ChavGPT> "you need to read this and that chapter of 'programming for idio^Wpeople like you' is
<ChavGPT> assming chapters at hand explain how to do something the person messed up
<heat> getting criticism is a trial by fire and it stings harder the less you've got
\Test_User has joined #osdev
netbsduser has quit [Ping timeout: 245 seconds]
<ChavGPT> code review: 10k LOC: LGTM ; 10 LOC: endless nitpicks
<heat> it's not that people don't care about "their craft", it's that people have feeling and feelings hurt
<ChavGPT> on that positive note i'm going afk
<ChavGPT> rest assured most so-calledp rogrammers don't care
<ChavGPT> for real
<zid> It only "hurts" *if your feelings are hinged on something other than the craft*
<ChavGPT> the typical idea is to move to management as soon asy ou can
<zid> like say, praise, or results, or showing off, or whatever
<heat> or effort
<zid> If they're pinned to how good you are, you *like* it when people help you improve your shit
heat has quit [Remote host closed the connection]
heat has joined #osdev
xenos1984 has joined #osdev
<gog> i don't really follow what this argument is about
<gog> specifically, not generally
<Ermine> gog: may I pet you
<gog> yes
<heat> on another note i'm using gcov today for the first time and it works nicely
* Ermine pets gog
<zid> use gperf instead, make some hashtables
* gog prr
corecode has quit [Server closed connection]
corecode has joined #osdev
<heat> gperf makes hashtables lol
<heat> that's some weird naming
<zid> yea it is
<gog> nerds with your programming
<heat> actually gcov just helped me find some dead code
<heat> yay
<heat> https://i.imgur.com/OOyTUCM.png look at this fucking line coverage
<bslsk05> ​i.imgur.com <no title>
<heat> branches could be better but i take it anyway
<heat> i should hack together gcov support for my kernel one day
<zid> after my allocator
<moon-child> why are there perfect bound hardbacks
<moon-child> this should be illegal
<moon-child> I hate what our world has become
<gog> zid: i'm writing your allocator
[itchyjunk] has joined #osdev
<zid> nice
Burgundy has quit [Ping timeout: 246 seconds]
heat has quit [Remote host closed the connection]
<kof13> > 10k LOC: LGTM ; 10 LOC: endless nitpicks that ....sounds like bike shedding :D
<gog> i'm bike shedding
<gog> i have bicycles coming off of me
<kof13> also story of mel uses pessimum IIRC
<zid> red
<kof13> > just like when banning cussing makes people invite other ways of being nasty that sounds like tao lol
<kof13> i didn't really have a point, just these are all known and have names (not a criticism, a recognition, concurring)
Left_Turn has quit [Read error: Connection reset by peer]
nvmd has quit [Quit: WeeChat 3.8]
<kof13> also conway's law for the last...have to communicate being nasty some other way if the vocabulary does not allow it :D
<bslsk05> ​git.kernel.org: kernel/git/ardb/linux.git - Unnamed repository; edit this file 'description' to name the repository.
* kof13 .oO( writes meta design patterns book )
netbsduser has joined #osdev
<zid> concensus seems to be "yea, it's broken and nobody cares, it'd be nice to get rid of" contrasted against "but it's not actually doing any harm by being there undeleted"
goliath has quit [Quit: SIGSEGV]
<gog> wuh
<gog> if there's code that needs deleting then delete it
<gog> why preserve something that's rotted
<zid> that's the thing, it doesn't need to be
<gog> ok
<zid> and it's probably easily repaired if anybody cares about ia64 next month
<gog> oh
<zid> but it *is* currently broken, and glibc wants to be rid of supporting it, etc
<gog> i mean that's fair enough imo
<zid> so now would be a good time to pull the trigger if it's going to eventually happen anyway
<gog> can't keep bringing along niche platforms forever i guess
<kazinsal> yeah, that's netbsd's job
<gog> yes
<ChavGPT> does it even work on itanium
<ChavGPT> Tasks remaining:
<ChavGPT> - context switching and forking appear unfinished, vm_machdep.c::cpu_lwp_fork() appears incomplete
<ChavGPT> - fix memory detection, on real hardware doesn't find all memory
<ChavGPT> - implement interrupts (sacpi & pci)
<ChavGPT> and so on
<ChavGPT> basically it does not