<netbsduser>
heat: i suppose if serenity really wants to be all NIH
<netbsduser>
then they're doomed
<heat>
what the fuck
<heat>
yo quick someone send me 10 bucks thanks
<nikolapdp>
why
<heat>
donation to the onyx project
<heat>
i'll port it to the pdp-11 (i won't)
<nikolapdp>
):
<netbsduser>
if they are happy not being NIH then they can port MESA, which has a software renderer for opengl
<heat>
vax would actually be possible if the toolchains weren't rotting
<nikolapdp>
they have an opengl 1 or 2 renderer already
<nikolapdp>
forgot which one
<netbsduser>
this sudden abandonment of serenityos still mystifies me a bit though, serenityos does have ports and you would think klinge would be attached to his brainchild
<nikolapdp>
he was getting more and more detached to be fair
<heat>
anyway a 100k donation smells like arabs
<heat>
oil money is infinite
<nikolapdp>
hasn't released a serentiy video in forever
<heat>
no one else would ever give away 100k to a shit web browser
<netbsduser>
i quizzed them in the serenityos discord house about why functions implementing syscalls are named like SYS$some_op_here
<netbsduser>
and even klinge himself didn't seem to have a good answer
<nikolapdp>
i mean he may have just made an arbitrary decision
<heat>
dollar dollar bills yall
<nikolapdp>
and then forgot about it
<netbsduser>
it was when i took a look at a copy of openvms internals i got on the cheap that i noticed
<netbsduser>
they use this SYS$operation_name() convention there for syscalls or whatever you call them in openvms - executive services?
<netbsduser>
i also wonder what's happening to the jacket language they were hyping up for serenityos
<nikolapdp>
lol basically nothing i think
<netbsduser>
i think that was also supposed to be the language of ladybug
<nikolapdp>
not sure about that one
<nikolapdp>
just serenity in general
<kof673>
iiirc C on vms allows $ and such in names for that reason :D
<nikolapdp>
c++ allows it in the standard now
<netbsduser>
even the kernel was supposed to be rewritten in it, but bizarrely it was apparently going to be a 1:1 rewrite
<kof673>
and gcc or somewhere it is an option
<netbsduser>
it would have been ahelpful time to address flaws, like tmpfs mmap()s duplicating the pages, and mmap() in general being incoherent
<nikolapdp>
i don't there was ever a properl plan for a full transition of the kernel to it
<zid>
nikolar the serenityOS user
<nikolapdp>
i am not
<heat>
TIL foo$a is a thing
<netbsduser>
the question is whether the new management of the serenity organisation will manage to evolve it further
<heat>
thank you nikolapdp for teaching me some C++ tonight
<nikolapdp>
you're welcome heat
<nikolapdp>
wait until you learn you can use unicode for identifier
<nikolapdp>
*identifiers
<netbsduser>
klinge was apparently one of those visionary leaders that corporate types like to pray to be led by
<heat>
i know you can
<nikolapdp>
are we going to see emoji in onyx code
<heat>
yes
<heat>
unmap_page_😳
<nikolapdp>
if that's unicode i can't see it
<heat>
the corporate types are in luck, i'm the genz linus torvalds
<bslsk05>
github.com: Unreachable code encountered in translate-c if macro has dollar sign · Issue #7585 · ziglang/zig · GitHub
<heat>
less offensive but a lot more incomprehensible
<nikolapdp>
heat you wish
<heat>
am i the genz greg kh then? :(
<netbsduser>
who will the gen z jordan hubbard be
<nikolapdp>
lol
<netbsduser>
or bryan cantrell
<heat>
genz theo de raadt
<nikolapdp>
lol don't think you are theo de raadt either
<heat>
i know im not
<nikolapdp>
there we go
<heat>
im too much of a not asshole to be theo
<zid>
nikolapdp wishes he was zid de irc
<nikolapdp>
oh you're definitely an asshole alright
<nikolapdp>
zid you wish
<heat>
i know i am
<heat>
a slight asshole
<zid>
Think of how much code he wouldn't bother to write!
<heat>
not too much, not theo level, also not torvalds level
<heat>
actually greg kh level assholeness is probably right
leon has quit [Ping timeout: 264 seconds]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
leon has joined #osdev
gog has quit [Quit: byee]
<Ermine>
heat: you're genz linus, i'm genz greg
<heat>
yeah you're managing the famous onyx stable releases
<heat>
nikolapdp fyi gcc also takes $ in C
<heat>
msvc does too
k_hachig has quit [Ping timeout: 268 seconds]
<nikolapdp>
heat not surprised
<nikolapdp>
though i don't think that's standard for c
<nikolapdp>
> Most compilers also allow b
<nikolar>
erm
<nikolar>
> Most compilers also allow ‘$’.
<nikolar>
from the gnu c manual
<zid>
My compiler doesn't allow b. You have to replace it with that red B emoji like a normal person.
<nikolapdp>
pasting unicode into pdp11 sic isn't a good idea lol
<nikolapdp>
surprised it didn't just exit like it usually does
<nikolapdp>
if i am reading the c standard correctly, $ isn't allowed
<zid>
magic quotes can die in a fire
<heat>
$ is allowed
<zid>
They don't even render right on my end anyway
<heat>
it's just not required
<nikolapdp>
heat how so
<heat>
it's allowed to be an extension
<nikolapdp>
zid lol
<nikolapdp>
heat don't think that counts
<heat>
why?
<nikolapdp>
well if we're counting extensions as "standard" than there's a bunch of other things that are standatd
<heat>
J.5 Common extensions
<nikolapdp>
yes, extensions
<heat>
J.5.2 Specialized identifiers
<heat>
1 Characters other than the underscore _, letters, and digits, that are not part of the basic
<heat>
source character set (such as the dollar sign $, or characters in national character sets)
<heat>
may appear in an identifier (6.4.2).
<heat>
i didn't say it was standard
<nikolapdp>
i was talking about the standard
<heat>
i just said it's not anti-standard to support that
<heat>
just as it's not anti-standard to support unicode in identifiers either
<nikolapdp>
i am talking about just what the base standatd requires
<nikolapdp>
not the "common extensions"
<zid>
It's not UB if gcc does what I wanted.
<nikolar>
Lol
<heat>
i think we're both being stupidly pedantic
<heat>
anyway linux kernel
<nikolar>
heat fair enough
<nikolar>
Illumos
<heat>
do you think the romans used unicode
<heat>
or just ascii?
<nikolar>
I'd say just ascii
<nikolar>
They didn't use emoji
<heat>
but they'd need to write greek sometimes
<heat>
or hebrew or egyptian or whatever
<nikolar>
They'd just switch the code page
<heat>
ew fuck that
<nikolar>
Lol
<nikolar>
I mean everyone should just use latin as far as they are concerned
<zid>
CP-437 for life
<nikolar>
*were
<heat>
furthermore i'm pretty sure they used emojis
<zid>
int ☺ = 4;
<nikolar>
Like what heat
<zid>
Who doesn't want a cool table ╤ in their base character set
<heat>
they graffiti'd dicks on walls, what's stopping them from wyd cleopatra 🍆💦🍑
<heat>
or in traditional egyptian, 𓂺
<nikolar>
I don't think those count as emoji, it's just a png
<heat>
what
<kof673>
wait for it... > The laconicum (i.e. Spartan, sc. balneum, "bath")^[1] was the dry sweating room of the Roman thermae, sometimes contiguous to the caldarium or hot room. The name was given to it (Laconia: Sparta) since it was the only form of warm bath that the Spartans admitted
<nikolar>
Like they aren't reused, just drawn there once
<nikolar>
Like dragging a png into a document or whatever
<heat>
yeah but the desire for emoji was definitely there
<heat>
i could imagine the senate drafting the unicode specification
<kof673>
they used sky emojis lol > We turn to Cassiopeia. Her “W,” or “Laconian Key,” atalanta fugiens, emblem XXII (and another as well i believe) -- this is that vessell above the vessell, and the philosophers' pott -- the balneum laconicum or vaporous bath - in which the old man sweats
<heat>
right after the USB HII spec
<nikolar>
Lol that would be hilarious I imagine
<heat>
crassus was on a mega trolling journey and said USB should totes use utf-16 bro
<heat>
and they took him seriously skull emoji skull emoji
<nikolar>
Unfortunately
<nikolar>
But then you're the richest man in Rome you can do whatever
<zid>
all I need to do is become the richest italian and then I get to start NERV? sounds good
Arthuria has joined #osdev
<nikolar>
*richest Roman
<nikolar>
Too late now
<heat>
i'm struggling really hard not to make an ottomans joke rn
<heat>
at this point you're just teasing me
netbsduser has quit [Ping timeout: 252 seconds]
heat has quit [Quit: Client closed]
k_hachig has joined #osdev
vdamewood has joined #osdev
edr has quit [Quit: Leaving]
mctpyt has joined #osdev
Gooberpatrol66 has quit [Ping timeout: 268 seconds]
Gooberpatrol66 has joined #osdev
smeso has quit [Quit: smeso]
smeso has joined #osdev
oldgalileo has quit [Ping timeout: 240 seconds]
k_hachig has quit [Quit: WeeChat 4.2.2]
<mjg>
you may be interested to know Mike Karels passed away
<mjg>
he was one of the OG berkeley unix hackers
mctpyt has quit [Remote host closed the connection]
<ghostbuster>
mjg: sorry didn't see your message before i posted
<mjg>
this is a semi-public information fyi
<mjg>
anyhow don't tweet or whatever this anywhere yet please, thanks
<mjg>
ghostbuster: as for the above, i don't think it's a problem
Arthuria has quit [Ping timeout: 268 seconds]
GeDaMo has joined #osdev
oldgalileo has joined #osdev
scaleww has joined #osdev
goliath has joined #osdev
bauen1 has quit [Ping timeout: 256 seconds]
<nikolar>
heat how did you know
<nikolar>
I was expecting that you would
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
scaleww has quit [Quit: Leaving]
gbowne1 has quit [Quit: Leaving]
lte678 has joined #osdev
<dinkelhacker>
mjg: Seems like someone already updated his wikipedia page.
<mjg>
indeed
<nikolar>
Unfortunate
stolen has joined #osdev
CryptoDavid has joined #osdev
theyneversleep has joined #osdev
puck has quit [Remote host closed the connection]
puck has joined #osdev
mcfrdy has quit [Quit: quit]
oldgalileo has quit [Ping timeout: 255 seconds]
lte678 has quit [Read error: Connection reset by peer]
Left_Turn has joined #osdev
bauen1 has joined #osdev
heat has joined #osdev
<heat>
mjg: dang :(
oldgalileo has joined #osdev
<heat>
>I'm afraid only old farts write anything in Perl anymore. The kids just
<heat>
mutter "OK, Boomer" when you try to tell them how much better CPAN was than
<heat>
PyPi.
<heat>
lmfao ok boomer
<nikolapdp>
heat you did the meme
oldgalileo has quit [Ping timeout: 246 seconds]
<heat>
i do all the memes
m3a has quit [Ping timeout: 268 seconds]
stolen has quit [Quit: Connection closed for inactivity]
dalme has joined #osdev
CryptoDavid has quit [Quit: Connection closed for inactivity]
netbsduser has joined #osdev
<kof673>
well...> Parrot was officially discontinued in August 2021, after being supplanted by MoarVM in its main use (Raku) and never becoming a mainstream VM for any of its other supported languages.
* kof673
gestures... it is over there somewhere.... > The name Parrot came from an April Fool's joke which announced a hypothetical language, named Parrot, that would unify Python and Perl.
<dinkelhacker>
heat: we have a bunch of perl code at work nobody dares to touch because the guys who wrote it are long gone :D.. So yepp.. seems about right to me!
goliath has quit [Quit: SIGSEGV]
m3a has joined #osdev
Gooberpatrol_66 has joined #osdev
Gooberpatrol66 has quit [Read error: Connection reset by peer]
blockhead has quit []
heat has quit [Quit: Client closed]
wlemuel has quit [Remote host closed the connection]
CryptoDavid has joined #osdev
MrCryo has joined #osdev
oldgalileo has joined #osdev
goliath has joined #osdev
navi has joined #osdev
m257 has joined #osdev
heat has joined #osdev
oldgalileo has quit [Remote host closed the connection]
oldgalileo has joined #osdev
Matt|home has joined #osdev
m257 has quit [Quit: Client closed]
m257 has joined #osdev
mcfrdy has joined #osdev
m257 has quit [Ping timeout: 250 seconds]
Arthuria has joined #osdev
m257 has joined #osdev
vdamewood has joined #osdev
<pounce>
perl is nice
<heat>
found the 70 year old
CryptoDavid has quit [Quit: Connection closed for inactivity]
<kof673>
larry wall had some linguist background i thought.."they" are lurking everywhere in here...
* Ermine
thinks of perl harbour
<Ermine>
The fact that openssl configure script is in perl is fun
xenos1984 has quit [Read error: Connection reset by peer]
<dostoyevsky2>
Ermine: I kindof prefer a configure script written in perl to one in shell, as it's probably a lot more portable than sh
<Ermine>
I guess portable includes Windows in this case
<Ermine>
in which case I'd go with meson or muon
edr has joined #osdev
<heat>
oh heck naw
<heat>
openssl's configure script is so fucking cursed
<heat>
it's the most half assed configure script ever
<heat>
i would strongly recommend them to just use autoconf if they wanted a configure script
<heat>
and i don't recommend autoconf lightly
<dostoyevsky2>
But even for linux/bsd the variety of what /bin/sh and all the other bin programs are makes it really hard to write scripts that run reliably on every system... and for windows I think at least miniperl should be easy to install, but not sure on how many unix binaries openssl then depends on
<Ermine>
that's openssl for you
MrCryo has quit [Remote host closed the connection]
<nikolapdp>
is libressl any better
<nikolapdp>
in terms of configure lol
<Ermine>
Idk, but i don't trust openbsd on this
<dostoyevsky2>
I heard age is better but it is not supporting everything that the openssl cli can do
<Ermine>
Also, > libre
<nikolapdp>
yeah libressl doesn't depend on perl at all
<dostoyevsky2>
But I've actually started to write my own openssl cli in Go it's not that hard to write... but comparing whether your code does similar things as the openssl cli can be challenging
<Ermine>
In fact, libressl as in openbsd source tree doesn't have any configure scripts at all
<bslsk05>
libressl/portable - LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code. Pull requests or patches sent to tech@openbsd.org are welcome. (267 forks/1327 stargazers)
<Ermine>
Btw why libressl logo resembles Che Guevara
<Ermine>
dostoyevsky2: go has it's own ssl library doesn't it
<dostoyevsky2>
Ermine: Yeah, and not many CVEs ... It's often like: Hey CVE in openssl x509 cert parsing... no CVE for Go though
xenos1984 has joined #osdev
<dostoyevsky2>
And it's all the standard library and the API rarely changes, I think its been stable for at least ten years
<Ermine>
btw the most common line in my go code is if err != nil {
<dostoyevsky2>
it's annoying, isn't it?
<Ermine>
yeah
<Ermine>
The more annoying thing is amount of structure copying which is going to happen in my code
<Ermine>
mjg is going to have a heart attack from this amount of pessimality
<zid>
The main thing is just that it's a new version, with much more focus on security
<zid>
openssl is *shit*
<zid>
mainly because it's so old
<dostoyevsky2>
In my go code I do all the error checking implicitly
<dostoyevsky2>
so e.g. I have a `ReadFile(fn) string' and it will always return a string but if it can't open the file it will print an error on stderr, like in a shell script...
<dostoyevsky2>
If you have a null object pattern in your go code it can look like: https://bpa.st/FHBQ
<dostoyevsky2>
nikolapdp: These are examples how I use Go without explicit error checking... With a custom preprocessor, similar to how one would use C
Arthuria has quit [Ping timeout: 268 seconds]
m257 has quit [Ping timeout: 250 seconds]
heat has quit [Quit: Client closed]
m257 has joined #osdev
cross has quit [Remote host closed the connection]
josuedhg has joined #osdev
Turn_Left has joined #osdev
m257 has quit [Ping timeout: 250 seconds]
Left_Turn has quit [Ping timeout: 255 seconds]
gsekulski has joined #osdev
goliath has quit [Quit: SIGSEGV]
<netbsduser>
heat: there is nothing worse
<netbsduser>
trying to port some software and you discover its authors thought, "we'll make our own configure script and makefile, and autoconf be damned"
heat has joined #osdev
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
cross has joined #osdev
josuedhg has quit [Quit: Client closed]
josuedhg has joined #osdev
<heat>
intel's doing away with smt
<heat>
cray cray stuff
<mjg>
i was just going to start writing a smt-aware scheduler!
<mjg>
props to openbsd for waiting it out
<mjg>
now they only need to add big.LITTLE
netbsduser has quit [Ping timeout: 252 seconds]
<heat>
dont worry mjg they're not increasing core count apparently
<heat>
just wider cores
<heat>
P cores
m257 has joined #osdev
oldgalileo has quit [Ping timeout: 240 seconds]
oldgalileo has joined #osdev
m257 has quit [Quit: Client closed]
netbsduser has joined #osdev
freakazoid332 has joined #osdev
josuedhg28 has joined #osdev
josuedhg has quit [Ping timeout: 250 seconds]
<Ermine>
what's going on with smt?
<dostoyevsky2>
doesn't OpenBSDb have a lot of smt support these days?
<dostoyevsky2>
I think they only have SMP support
<Ermine>
Wow, I found old mjg message in lkml
<Bitweasil>
I believe OpenBSD, in particular, opted out of SMT very early on during the whole uarch vulnerability debacle.
heat has quit [Quit: Client closed]
Turn_Left has quit [Ping timeout: 246 seconds]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Gooberpatrol_66 has quit [Ping timeout: 272 seconds]
Gooberpatrol_66 has joined #osdev
<mjg>
Ermine: :X
<mjg>
what am i sayin'
<Ermine>
"parsing kernel cmdline by systemd is a bad idea"
<mjg>
:D
<mjg>
totes agree with the setntiment
<mjg>
afair the L man objected
<mjg>
i don't remember what he said
<mjg>
then again, he is a linux person...
<Ermine>
He said that parsing kernel cmdline is not a problem, the problem is that some devs refuse to fix bugs in their software
<mjg>
it definitely is a problem
<mjg>
at best there should be a dedicated keyword or some shit
<mjg>
which systemd is allowed to look at
<mjg>
grabbing arbitrary args == top kek
CryptoDavid has joined #osdev
<Ermine>
Then you need to unexpose /proc/cmdline to enforce usage of this keyword, and that will be api break, so this ship have sailed a long ago
<mjg>
'we allowed something regrettable to happen and now it is here to stay' is 95% of linux
<Ermine>
Isn't that 95% of software engineering?
nick64 has joined #osdev
<mjg>
no
<mjg>
for example that's maybe 80% of bsd
zxrom has quit [Quit: Leaving]
<Ermine>
Well, it's still a big factor
<mjg>
no argument
<mjg>
where have i claimed bsd is not shite
<mjg>
:d
<Ermine>
Someone introduced bad api, and if you care about compat, it's here to stay forever
<Ermine>
It's everywhere
<mjg>
the most rregrettable shit in linux that i know of is process titles handling
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
zxrom has joined #osdev
<Ermine>
<bsd fanboy mode>The most regrettable shit in linux that I know of is linux itself</bsd fanboy mode>
<mjg>
so i'm fucking around with neovim, trying out pluggins, themes 'n shit
<mjg>
i just found the stupidest, most webdev thing so far bar none
<mjg>
fucking guy created a color scheme which changes mid-line
<bslsk05>
www.tecmint.com: Lolcat - Make Your Linux Terminal More Colorful and Fun
<mjg>
vim, what else
<mjg>
:d
<nikolar>
Kek just stick to vim then
<nikolar>
And yeah I've seen that
<mjg>
dude i'm trying to come out of middle ages
<nikolar>
What's wrong with vim
<dostoyevsky2>
I want to write my own version of vmi
<dostoyevsky2>
vim even
<dinkelhacker>
vimscript
<nikolar>
dinkelhacker there's vim9script now
<dinkelhacker>
Is it any better?
<nikolar>
Seems ok, haven't really tried it much
<nikolar>
It's definitely better
<mjg>
i want lsp and other modern features without having to fuck with the editor
<mjg>
this is *almost* true with neovim thanks to bundles
<dinkelhacker>
Yeah exactly.. I also found it much easier to get that working with neovim. Never looked back since. Plus writing plugins in lua is really easy so I actually customized mine quite a bit for work stuff.
<nikolar>
Eh I have lsp with no fuss
<dinkelhacker>
probably vim has catched up on that front since I last tried it
<nikolar>
I just added vim-lsp and it works
<mjg>
i git clone stuff into .config/nvim
<mjg>
startup nvim
<mjg>
and i got tons of stuff Just Working
<mjg>
integration with git, magic greps with treesitter 'n shit
<mjg>
what i don't have is a good color scheme tho
<nikolar>
Yeah same, just instead of cloning I add it to the plug list
<mjg>
did not you say you are a genz?
<mjg>
wtf are you doing sticking with vim
<nikolar>
A bonus is that I can just copy the .vimrc and it auto installs everything
<nikolar>
mjg why wouldn't I
<mjg>
millenial or older default
<nikolar>
What
josuedhg28 has quit [Quit: Client closed]
sbalmos has quit [Quit: WeeChat 4.2.2]
<Ermine>
cloning shit into .config/nvim feels webdevish to me
<nikolar>
definitely lol
<nikolar>
just use vim plug or something
heat has joined #osdev
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
<Ermine>
plug is webdevish as well
<nikolar>
what do you prefer then Ermine
<nikolar>
and don't say nixos or something because that's even more webdevish
<Ermine>
i'm tired of this shit so I don't install anything in vim
<nikolar>
kek
<Ermine>
nixos is _less_ webdevish actually
<heat>
nix is the new arch
<nikolar>
in what sense heat
<Ermine>
anyway I started using vscode
<nikolar>
Ermine: i mean i only have a few plugins
<heat>
in 10 minutes someone's going to pop in and explain what nix is and how it's so much better than everything else
<nikolar>
like fzf or fugitive
<Ermine>
and actually c++ and go tooling there is not as bad as python tooling
<nikolar>
heat: ah in that sense, definitely
<heat>
vscode gang stand up
<nikolar>
seems like it's just you heat
<nikolar>
at least at the moment
<Ermine>
no
<heat>
geist too
<heat>
we're getting stronger by the day
<Ermine>
vscode gang here
<nikolar>
geist doesn't count, yet
<Ermine>
why
<nikolar>
he said he was just trying it out
<Ermine>
Anyway, sublime text is as feature-packed, but it's much more lightweight
<nikolar>
it's proprietary, no?
<heat>
yes
<Ermine>
yes
<heat>
i didn't like sublime much back in the day
<heat>
when i was young
oldgalileo has joined #osdev
<nikolar>
lol shut up heat
<heat>
mjg: mofer i have to say i highly enjoy you using people.freebsd.org for your linux screenshots
<heat>
hilarious stuff
<heat>
i kinda know what plugin pack thingy you're using, cuz i use it too
<Ermine>
Ah, also latex support could be better in vscode
<heat>
you git clone that thing and boom your your nvim looks and feels like a fucking robot
<nikolar>
a robot?
<nikolar>
is that a good or a bad thing
<heat>
yes
<heat>
all of the above
<nikolar>
lol
<heat>
it's the difference between a quaint, simple editor (like vim) and a fully packed plugin'd editor with an updated, 30 trillion things scrolling up and down
<heat>
updater
<Ermine>
vi vi vi vi
<nikolar>
yeah i'll just stick to the quaint vim lol
<nikolar>
nice and cosy
oldgalileo has quit [Ping timeout: 252 seconds]
<heat>
vi is cringe
<nikolar>
you're cringe
<heat>
found the vi user
<heat>
what's next, ex?
<nikolar>
no, ed
<heat>
cat
<nikolar>
the standard editor
<Ermine>
vi is not cringe actually, for what it can do
<heat>
vi is cringe, vim is based, nano is mega based
<nikolar>
vi was kind of revolutionary when it came out
<heat>
yeah shame we're not in the 1980s now
<nikolar>
yeah that's why we have vim
<Ermine>
if you need some text file edited quickly in the terminal, and there's no vim (e.g. it's some distro iso), you use vi
<nikolar>
definitely
<heat>
shame we're not in the 1990s now
<nikolar>
oh i am sorry that my editor doesn't run on a browser engine lol
gbowne1 has joined #osdev
<heat>
Ermine: i'll be That Guy: vi is usually implemented by vim
<heat>
otherwise there are a couple of shits vis in busybox and toybox, and they're shit
<nikolar>
yeah but you still don't have access to most of things
<nikolar>
like multilevel undo
CryptoDavid has quit [Quit: Connection closed for inactivity]
<Ermine>
why then you need to install vim separatedly on e.g. arch
<heat>
do you? my vi is vim
<Ermine>
and why vi is included in arch iso, while vim is not
<nikolar>
i don't think arch is a good example
<nikolar>
can't remember lol
<nikolar>
better use ubuntu
<Ermine>
same goes for ubuntu iirc
<nikolar>
yeah ubuntu comes with vi version of vim
<nikolar>
i think they call it vim-tiny or something
<Ermine>
no, vim-tiny is vim
<heat>
huh maybe i have actual vi and it's not vim
<heat>
awful
<nikolar>
heat: it's is stripped down build of vim called vi
<nikolar>
when you open vi on ubuntu it says vim 9 or whatever
<heat>
btw nikolar apparently fuse sync is completely broken
<nikolar>
oh how s o
<heat>
they issue the sync but then never wait
<nikolar>
ah kek
<nikolar>
no bueno
<heat>
because if they waited they could run into DoS problems
<nikolar>
is that a protocol issue or did they just forget
<nikolar>
ah ok
<heat>
on purpose
<nikolar>
is that for both single threade and multithreaed
<heat>
probably
<heat>
it's an issue on the kernel's side, not libfuse or anything
<Ermine>
so fuse is borked anyway
<nikolar>
i guess you could go the dostoyevsky2 route and write an nfs server
<dostoyevsky2>
nikolar: I have this encrypted, distributed filesystem that I am working on... I used to be only able to access it via sftp but now I am also addding nfs support and some `find' extensions, where you can avoid the readdir/stat round trips
node1 has quit [Client Quit]
<nikolar>
dostoyevsky2: how bad is sftp as a protocol
<nikolar>
i am reconsidering fuse for my project
node1 has joined #osdev
<heat>
please for the love of god juts write a kernel driver
<dostoyevsky2>
nikolar: I watch videos in vlc via sftp... it's nice... but if you do a find on it, it can take like 5mins to read like 5k files
<nikolar>
heat: sure, what for
<nikolar>
linux?
<heat>
yeah sure
<nikolar>
have you written a kernel driver for linux
<heat>
yes
<nikolar>
an fs driver i mean
<heat>
not really but i'm intimately familiar with vfs internals
<heat>
basically you register your callbacks and write your driver
<Ermine>
if you write a kernel driver for linux, you'd better maintain it
<heat>
it's a neat OOP design, with pointer tables all the way up
<nikolar>
Ermine: i am not thinking about upstreaming it
* Ermine
looks at Paragon
<nikolar>
heat: and how do i test it
<nikolar>
wait forever for a vm to reboot
<heat>
boot tests and then xfstests
<heat>
why reboot?
<nikolar>
ah right i can juts reload the module
<nikolar>
duh
<heat>
exactly
<nikolar>
unless i crash everything :)
<Ermine>
kunit!
<heat>
good thing: oopses won't crash your machine probably
<nikolar>
probably (tm)
<heat>
if you genuinely think about going down the kernel route, have a look at fs/ext2
<nikolar>
i have glanced at it
<heat>
note that things get harder as you go into journalling et al, and i'm sure you'd need to write your own versions of some routines
<nikolar>
heat: i am not doing journaling, log based fs remember
<heat>
like the filemap.c write_iter and all that stuff is probably not suited to journalled fses
<heat>
yeah but those are non-trivial writes
<nikolar>
though i am curious as to what you mean
<Ermine>
external journaling devices make me sad for some reason
<heat>
nikolar: ah no write_iter would be okay i think, writepages you'd probably need to write your own yeah
<nikolar>
all i need is to queue up pages to write and be able to wait for that to finish
<heat>
yeah but you don't wait for it to finish
<heat>
that's not how filesystems work
<nikolar>
sorry, need to know when it's done
<nikolar>
i am talking in broad strokes
Turn_Left has joined #osdev
<heat>
note that you could even enjoy the greatest funniest feature of all time
<heat>
stable pages
<nikolar>
i am not familiar
<heat>
it's something filesystems can opt-in to, basically will stop writes to page cache pages that are under writeback
<heat>
which are obviously troublesome on data-csum'd filesystems
<nikolar>
huh not sure i want that lol
<heat>
you don't have data csums?
<nikolar>
i will
<nikolar>
both data and metadata
<heat>
well then you'll need it
<nikolar>
ah right
<nikolar>
will need to figure out how to manage that in my fs
<nikolar>
i don't think i need to block writes, i am thinking of a scheme where i can update an in memory representation while the previous epoch is being written
<dostoyevsky2>
nikolar: The easiest filesystem is the one where you can store only one file
<dostoyevsky2>
s/nikolar: //
<nikolar>
kek
<nikolar>
hello to you too
<heat>
nikolar: blocking is the sanest move
<gog>
blocked and reported
<heat>
anything else runs into page cache coherency/mmap coherency issues
node1 has quit [Quit: Client closed]
<nikolar>
so while the flush is in progress, all writes are just blocked
<nikolar>
even though my driver could handle the concurrent write
<nikolar>
hello gog
<gog>
hi
<heat>
it doesn't matter whether you can "handle" the concurrent write
<heat>
1) there will be a period where you'll need to block writes (e.g when copying the page), period
<nikolar>
sure
<heat>
2) replacing a page would entail a bunch of problems including if e.g you're under memory pressure
<heat>
3) there's minimal problems with blocking writes under writeback, because you do writeback every N seconds
<geist>
i forget which one it was, win95 i think, and it would get into periods where once a second it'd write a little bit of data
<geist>
and if you had a noisy disk drive, as many where back then, it'd just set there and bzzp bzzp bzzp bzzp
<geist>
was pretty annoying
<nikolar>
heh
josuedhg has quit [Quit: Client closed]
<heat>
geist: yo did you see the news intel is ditching smt
<geist>
saw that
<Ermine>
I didn't
<heat>
kuhrayyyyyyyyyyyyyze
<geist>
they basically seemed to be of the opinion that beefing up the E cores takes up the slack and they can reduce the size of the P cores by removing the SMT overhead
<heat>
they're not reducing the size i think, they're making them wider
<geist>
and that in aggregate the total efficiency/performance/space is better
<geist>
well, yeah i mean they then beef up the P cores
<Ermine>
so smt doesn't play well with big.LITTLE stuff?
josuedhg has joined #osdev
<geist>
well no not at all, but it's a decision that intel made
<heat>
yeah amd still has SMT
<nikolar>
heat: amd is doing smt on the new gen too
<heat>
i know
<geist>
or at least it's another way of lookign at it. since they already have E cores, you can argue that they are more effective and you pile in on making the P cores as fast as possible, single threaded, and then let the bulk of the background stuff on E cores
<nikolar>
geist: doesn't amd still beat them on efficiency
<geist>
which is pretty much what ARM big.LITTLE has been doing for a while, but they just never had SMT in the first place
<geist>
nikolar: <shrug> depends
<geist>
i mean probably,m but i dont have numbers avail
<geist>
but i think so, and this is why intel is trying different strategies to get their efficiency up
<nikolar>
now it's arguable if that's due to the process or the big littles stuff or who knows what else
<geist>
indeed
<heat>
personally i think we should burn more power like they've been doing for the last 2-3 years
<nikolar>
lol
<nikolar>
amd is lowering the power consumption of the new chips while still getting better perfomrance
<geist>
yah your computer aint reel unless it's rollin' coal
<nikolar>
at least according to them
<nikolar>
we'll see when the cpus come out
<geist>
nikolar: yeah also i know a thing or two from intenal bits and haven't been paying attention to what is announced
<geist>
so i shouldn't say anything
<nikolar>
kek ok
<Ermine>
there's a paradox with power efficiency
<nikolar>
just say it's good or it's bad :P
<heat>
geist blink twice is invlpgb is still there
<heat>
if*
<Ermine>
if you make something more efficient, people just buy more of it and the total power consumption increases
<geist>
i *was* looking around the internet last night to see if there was any mention of FRED on the new things
<geist>
but that's so low in their list of things to talk about in a high level presentation
<nikolar>
i don't think amd is that invested into fred yet
<Ermine>
invlpgb is to invalidate tlb entry?
<heat>
broadcast
<heat>
so to every CPU, no IPIs needed
<geist>
all the internal stuff i have access to is generally server centric, so i have no idea what goes on in consumer space until it's announced
<nikolar>
it's probably not too too different
<nikolar>
at least architecturally
<Ermine>
so tlb shootdown is faster?
<heat>
yes
<geist>
basically it's a feature AMD added a while back (zen 3?) that mirros pretty closesly what you get on ARM
<heat>
the linux people seem to be of the opinion that the number of ASIDs is too low for invlpgb to work well
<geist>
ie, no need to send IPIs to shootdown TLBs
<geist>
yah, i think theyre onto something
<nikolar>
asids?
<heat>
address space ids
<Ermine>
heat: do you use it in onyx?
<heat>
no
<nikolar>
ah right
<geist>
AMD should have increased the size of the ASID, but then it's hard to atomically load a ptr to a page table + ASID
<heat>
x86-s x86-s x86-s x86-s
<nikolar>
it's a tradeoff who knew
<nikolar>
is that what they are calling it
<heat>
not a tradeoff, it's a huge fucking hack
<nikolar>
lol those are tradeoffs too
<nikolar>
just of a different kind
<geist>
but then ARM only has 16 bit ASIDs, but that's tstill a lot bigger than 12
<heat>
cr3 was originally just a page table pointer, then it grew bits, then it grew ASID support
<heat>
yeah 64K concurrent processes is crazy
<heat>
4096 is probably realistic on big metal
<heat>
2048 if meltdown
<nikolar>
the new epycs have like 300-400 cores on one chip
<nikolar>
384 i think
<geist>
yah and generally you want to atomically swap the ASID and the pointer at the same time. ARM can avoid it because they have the split TTBR
<nikolar>
*up to
<geist>
so you can load the user one while being in kernel space in two writes if you needed to
<Ermine>
use skaware and you'll get 64k processes in no time
<geist>
a machine that runs a crapton of containers probably is a good canditate (maybe that's the skaware is)
<geist>
VMs it's not so bad, because each vm gets their own ASID namespace
<geist>
and the TLB shootdowns are effectively VMID+ASID tagged
<geist>
so on ARM you get 16:16 bit combination there, i think AMD is similar
<Ermine>
skaware = software from skarnet.org
<geist>
just 12:12
<heat>
geist i like the idea of the msr writes not comitting til you write to e.g cr3
<geist>
is that what FRED does?
<heat>
so basically wrmsr(ASID_MSR, asid); // not yet active
<heat>
wrmsr(CR3_MSR, cr3) // commits asid and cr3
<FreeFull>
200 years later
<geist>
i haven't re-read the fred doc for a while
<FreeFull>
We'll still be using some x86 variant
<heat>
no i think FRED still sucks on that end
<Ermine>
he decomposes stuff into little programs, so you end up with many small processes
<heat>
but i haven't read the doc ever
<geist>
i haven't looked into what ARM does with thei rnew 128 bit page tables
<Ermine>
btw, is there a list on must-know MSRs or something like this?
<heat>
just that this was a problem before, and it's also a huge problem with e.g switching paging modes
<geist>
Ermine: ah cute. probably not practical but cute anyway
<heat>
from 48 to 57 bits
<geist>
gosh i wish any one of the arches would just do what itanium did and have 8 separate page table tops and just let you do what you want with them
<geist>
full up the whole 64bit
<heat>
and i was upset that x86-s didn't fucking solve it but never got to writing the angry email
<geist>
ARM does with 2, but there's still a large gap
<nikolar>
heat: it's never too late
<heat>
Ermine: sdm
<nikolar>
write the email
<Ermine>
heat: my question was exactly to avoid reading the whole 4th volume
<Ermine>
well, there's some EFER guy appearing in the 3rd volume
<geist>
from what i've heard from folks that work on server chips at my company, AMD tends to be intereste in what customers want, at least server customers, and will generally implement what people ask for
<geist>
and intel tends to just do whatever they want. so it a lot of times feels like new features are just some thing someone championed within intel to get promoted
<geist>
but that may not be the case anymore now that AMD has gained marketshare and they're not as hungry for customers
<heat>
oh lord they removed the whole 57-bit MSR thing in the new revision
<heat>
they're probably banking on 57-bit being mandatory
<nikolar>
kek
<geist>
kinda makes sense, may as well
<nikolar>
hey that's one more bit you can reuse for options :)
<heat>
no
<geist>
if you're already going to hard break compatibility, set the bar to current stuff
<heat>
AWFULLY
<heat>
57-bit support is not a CR3 bit
<heat>
hence why it's the biggest pain in the butt to switch. it's not atomic
<geist>
it's a CR4 isn't it?
<Ermine>
amd or intel?
<heat>
yeah CR4
<geist>
i haven't heard anything about the AMD equivalent FRED they pushed around a few years ago
<heat>
you need to drop back to 32-bit, disable paging, toggle LA57 in CR4, enable paging and load CR3, jump back to 64-bit
<geist>
it was somewhat more conservative but would hav been useful
<heat>
Ermine: fyi you don't need to know many MSRs
<heat>
the important ones are usually referred to by the other bits of the SDM
<geist>
yah i should enable lm57 on LK for keks
<geist>
i need to spend some time bringing the lk x86 port up to speed. the ARM and riscv ports are far ahead feature wise
<nikolar>
kek
<heat>
i want to try unifying all of my MMU code into a mega-unified linux like thing
<nikolar>
what's your code like now
<mjg>
implement pmap like bsd
<mjg>
you fuck
<heat>
all mmu code is arch-specific with well defined interfaces like "map_page" or whatever
<heat>
linux is a soup of radix-like page table macros that don't really need to match up to what the arch does
<heat>
but it's all unified, everyone goes through similar-ish paths
<nikolar>
interesting
<heat>
mjg: fuck you
<mjg>
ok
<heat>
have you suggested pmap to ##mm
<mjg>
on the contrary, i indirectly dunked on it
<heat>
you keep dunking on BSDs in ##mm but then use people.freebsd.org smh
<mjg>
i don't have a place to put stuff
<mjg>
other than that
<heat>
gists and imgur
oldgalileo has joined #osdev
<heat>
gists are actually super fucking handy if you have the github cmdline utility installed
<heat>
just gh gist create <file> and it's done
<heat>
gives you the link and everything
<mjg>
i'm more of a boomer than a genz
<mjg>
so put shit in public_html/
<heat>
you can use termbin if you're old
<mjg>
huh '${HUGE_PAGE_DIR}'/
<mjg>
actual directory
<mjg>
something went wrong
<heat>
wat
<mjg>
some shite at work
<heat>
btw if there's something someone shouldn't emulate from linux, it's its awful hugepage code
<mjg>
say that on ##mm
<heat>
they know
<mjg>
they probably do have that opinion
<geist>
wow things escalated quickly
<geist>
gee i wonder why
* geist
thinks
<heat>
you mean they SCALED
<heat>
srsly hugepages and hugetlbfs and all that stuff is non-trivially duplicated for thp
<Ermine>
hugepages != thp ?
<mjg>
i don't know the internals, knowing linux however i fully expect the code to be bad
<heat>
hugetlbfs is what they use when you ask for huge pages on mmap or use the fs manually or whatnot
<heat>
it even has page table sharing!
<heat>
thp is huge pages by chance when khugepaged thinks you deserve one
<mjg>
sad reality is that people do code dumps which solve *their* problem, then everyone else is left to fend for themselves
<geist>
indeed. that is also the sad reality everywhere
<geist>
so it's nice that linux is at least within this realm of existance
<mjg>
the L man could be blocking it
<mjg>
or relevant subsystem maintainers
<mjg>
instead shit goes in and they can complain about it
<heat>
i've also heard userfaultfd is code-level annoying too but i can't confirm
<heat>
just that most page table code in linux has the normal path and the "IS THIS A FUCKING HUGEPAGE paths"
<heat>
and then you need to check for huge hugetlbfs and huge thp
<heat>
tldr awful code soup
<dostoyevsky2>
I wanna write BombFS where your file literally explode
<heat>
mr putin is in
<heat>
mjg: hacks innit
<Ermine>
Ok, i've got weird bug in vscode
<heat>
and it's hard to do these sorts of large scale refactors of code without trampling over someone
<heat>
the fact that folios are actually a thing and pages are getting killed Soon(tm) is an exception to the general rule
<mjg>
the funniest bit about is that it is ORACLE of all places funding the work
<mjg>
kek/10
<mjg>
the one place you would never expect to fund anything serious