fkrauthan has quit [Remote host closed the connection]
edr has quit [Quit: Leaving]
fkrauthan has joined #osdev
<heat>
i had to fix a fun data corruption bug where i ignored the nvme controller's max transfer size
<heat>
which resulted in bad mkfs'd filesystems (mkfs was the only thing writing enough contiguous stuff that could be merged)
gbowne1 has quit [Quit: Leaving]
<mjg>
ey does onyx survive git clone of its own repo
<heat>
i don't have a git port yet
<kof673>
nortti, yes, but....my only point is people (lawyers and not) re-use words with prior meaning all the time, chaos is eternal :D
<kof673>
there is no version control lol
<kof673>
so you must play 20 questions to maybe see which version they mean lol
<kof673>
was just an example, you can find the supreme court saying those are the "only states" that "the constitution" was about lol to clarify how it might persist beyond 1780/1790/whatever lol point being, now there are even more versions lol
<kof673>
it is the opposite of occam's razor, entities get duplicated forevermore lol
<kof673>
> "The Trouble with Tribbles" is the fifteenth episode of the second season of the American science fiction television series Star Trek
Celelibi has quit [Ping timeout: 246 seconds]
<kof673>
my only argument is different entities should get a version number and/or a new name, not arguing these examples :D
dude12312414 has quit [Remote host closed the connection]
<azonenberg>
Is there a way to have GNU ld limit the maximum size of a section?
<azonenberg>
basically i have a small region within a larger MEMORY that I want to be able to store up to, say, 32 or 256 bytes of variables in
<azonenberg>
but have the linker complain if I use any more
<azonenberg>
tl;dr the device memory map is annoying and the NVM registers (persisted on battery backed RAM when the main MCU is powered down or rebooted) is within the peripheral address region
<azonenberg>
the "easy" option is just to have a fixed address for the NVM region that I can cast to whatever structure i feel like using
<azonenberg>
but i'd like to be able to just declare globals and put them in that region
<azonenberg>
and have the linker sanity check i don't use too many
<zid`>
that's already what memory and sections do though?
<azonenberg>
zid`: the problem is its not a separate region of memory
<azonenberg>
its a little chunk of like 256 bytes in the middle of one of the APB bus regions
<azonenberg>
it would totally be possible to make separate MEMORY regions for the low and high halves of the APB with the bbram in the middle
<azonenberg>
just ugly
<zid`>
I mean, that sounds like a memory region to me
<heat>
azonenberg, technically there's a way
xenos1984 has quit [Read error: Connection reset by peer]
<heat>
the counter in a linker script can't go backwards
<heat>
so if you do . = ADDR(.mysection) + 256 and it goes backwards, it'll error out
<azonenberg>
so lol
<azonenberg>
that sounds horrible
<azonenberg>
but it could work
<zid`>
yea, that's the section approach
<zid`>
just bracket it with two addresses
<zid`>
and it'll warn if they try to overlap
heat has quit [Ping timeout: 256 seconds]
srjek has quit [Ping timeout: 255 seconds]
Arthuria has quit [Ping timeout: 268 seconds]
xenos1984 has joined #osdev
Bonstra has joined #osdev
skipwich has quit [Ping timeout: 256 seconds]
skipwich has joined #osdev
foudfou has quit [Remote host closed the connection]
<kof673>
> int magic(int bar) @magicfunction(99); void moremagic(void) @magicfunction(100) { } </nescc example of "attributes">
bauen1 has joined #osdev
netbsduser` has quit [Ping timeout: 268 seconds]
<kof673>
> Installing the nesC compiler. TinyOS is written in nesC, a dialect of C with support for the TinyOS concurrency model and component-based programming. The nesC
<kof673>
compiler is platform-independent: it passes its output to the native compilers, so that it can take advantage of all of the effort put into their optimizations.
<kof673>
i was just looking at it for that reason, it can dump to xml things it parses (of which, normal C is a subset). the example "atomic" { } ....just disables interrupts <m j g in shambles> but it was for small devices
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #osdev
vai has joined #osdev
GeDaMo has joined #osdev
gog has joined #osdev
Matt|home has joined #osdev
zxrom has quit [Quit: Leaving]
zxrom has joined #osdev
zetef has joined #osdev
agent314 has joined #osdev
m3a has quit [Ping timeout: 260 seconds]
zetef has quit [Remote host closed the connection]
theyneversleep has joined #osdev
voidah has quit [Ping timeout: 255 seconds]
netbsduser` has joined #osdev
srjek has joined #osdev
goliath has quit [Quit: SIGSEGV]
wand has quit [Ping timeout: 260 seconds]
vdamewood has quit [Quit: Life beckons]
wand has joined #osdev
bitoff__ has quit [Ping timeout: 268 seconds]
Left_Turn has joined #osdev
mavhq has quit [Ping timeout: 255 seconds]
m257 has joined #osdev
mavhq has joined #osdev
skipwich has quit [Ping timeout: 246 seconds]
zxrom has quit [Remote host closed the connection]
zxrom has joined #osdev
voidah has joined #osdev
skipwich has joined #osdev
gildasio has quit [Ping timeout: 260 seconds]
<mjg>
/* In order to reduce some races, while at the same time doing additional * checking and hopefully speeding things up, we copy filenames to the * kernel data space before using them..
<ddevault>
getting lwext4 to write this filesystem properly is proving difficult
<netbsduser`>
what's happening with it?
<ddevault>
creating a new regular file in root
<ddevault>
shows up when I readdir via lwext4, while the block cache is warm (yes I tried flushing the cache)
<ddevault>
but it does not show up when I shut off the VM and mount the filesystem via loopback
<netbsduser`>
odd
<netbsduser`>
the only caching lwext4 does *is* the block cache, isn't it? i'm not sure if even active inodes and the superblock itself are cached separately from the block cache
<ddevault>
fsck.ext4 found the file
<ddevault>
well, that's a hint
<ddevault>
Unattached inode 1590
<netbsduser`>
it's probably too obvious but does the lwext based driver still see the file after cold boot the vm?
<ddevault>
nope
<ddevault>
bah
<ddevault>
need a break, will come back to this
<netbsduser`>
my single best guess right now then is if the inode itself is cached separately to its presence in the block cache and that the modified in-memory inode hasn't been flushed
edr has joined #osdev
<netbsduser`>
(i am thinking about the length field in particular)
goliath has joined #osdev
vin has quit [Quit: WeeChat 2.8]
vin has joined #osdev
edr has quit [Ping timeout: 245 seconds]
ZipCPU has quit [Remote host closed the connection]
ZipCPU has joined #osdev
ZipCPU has quit [Ping timeout: 268 seconds]
ZipCPU has joined #osdev
edr has joined #osdev
theyneversleep has quit [Remote host closed the connection]
<zid`>
you connect devices to it, and some support some things, some support other things
<mjg>
:d
<mjg>
panicked while panicking
<heat>
nvme is also technically not a bus
<heat>
nvme over pcie is
<clever>
zid`: i think ive heard of high tier aws servers, having a card that claims to be nvme to the guest, but then fires all requests out a network port, into the cloud
<heat>
or nvme over tcp
<zid`>
do you bitch if people plug a 1024*768 monitor into 4090 gtx because the framebuffer size is wasted
<clever>
zid`: so the guest can then get the benefits of the big nvme queues, and existing driver support
<heat>
that's nvme over tcp clever
<clever>
heat: the weirdness i saw, is that the guest was seeing it as an actual pci device in lspci
wand has joined #osdev
<dostoyevsky2>
I was trying to figure out the other day how hard it would be to create a fake hdd for qemu, like writing a server that makes qemu believe its a block device
<clever>
dostoyevsky2: i just finished implementing virtio-blk, but thats one step too deep, qemu already did that for you
<clever>
for your case, fuse might be an option, so you can tell qemu to read /fuse/foo.img, and then fuse can just make up whatever answer it wants
<dostoyevsky2>
clever: fuse for qemu? Wouldn't it be esier to just use fuse without qemu?
<clever>
i was just thinking, fuse on the host side, to create a fake disk.img file, and then qemu opens that as normal and passes it thru to the guest
<clever>
and then fuse can decide where the writes actually go
<dostoyevsky2>
I think the api for a hdd is much simpler than a filesystem, you just need like readat/writeat
<bslsk05>
users.rust-lang.org: Serving static files with a rust tcp server - #3 by mjguzik - help - The Rust Programming Language Forum
<mjg>
waiting for fuckers to tell me how the dogshti code from docs this poor guy copied is totally not a problem
vai has quit [Quit: Lähdössä]
root has joined #osdev
root is now known as Guest8134
Guest8134 has quit [Client Quit]
vai has joined #osdev
xenos1984 has quit [Ping timeout: 272 seconds]
xenos1984 has joined #osdev
<dostoyevsky2>
acidx: is there something similar to nbd for simulating a graphics card?
vai is now known as Jari--
<Ermine>
But why does nvme over tcp exist
<zid`>
because data centers want terrabytes of storage per machine, but don't want each machine to have loads of hdds in it
<zid`>
and a billion copies of the same linux install
<clever>
dostoyevsky2: qemu does have spice and vnc support, which lets you remote into the virtual gpu
<Ermine>
How does one reverse engineer windows drivers
<zid`>
free time and a debugger
<dostoyevsky2>
clever: clever: yeah, but I am looking for an api that makes qemu believe that is a video card it could draw to and then intercept the calls to whatever I like
<acidx>
dostoyevsky2: not that I know of
<acidx>
qemu connecting to a nbd server that's actually serving a linux distro iso through bittorrent would be pretty nifty
blockhead has joined #osdev
<acidx>
with overlayfs you could even have multiple immutable hard disk versions served through bittorrent in a fleet -- overlay the new version for a system update, and unmount the older version. that would also be pretty cool.
goliath has quit [Quit: SIGSEGV]
<clever>
dostoyevsky2: and whay would that give which vnc cant give?
<dostoyevsky2>
acidx: I am not even sure if you can just tell bittorrent what chunks you want, so maybe better use a distributed filesystem like ceph?
<clever>
dostoyevsky2: you can freely request chunks from peers in the torrent protocol
<clever>
thats how you can prioritize some files over others
<acidx>
dostoyevsky2: you can! most clients will grab chunks at random based on availability, but nothing is stopping you from fetching the chunks you want.
<heat>
Ermine, there's also nvme over oF
<heat>
sorry, nvme oF
<heat>
over fabrics
<dostoyevsky2>
acidx: I tried setting up a private torrent network as a distributed filesystem once... but I haven't found much documentation on how to run your own private bittorrent servers, nor does there seem to be something like a libtorrent that you can easily start to use.. I did find a torrent implementation for Go that looked promising but it turned out that it uses a lot of CPU
<heat>
this is what they actually use in the datacenter i think, if they have mega cool fabrics that is
<heat>
mjg, >Multithreading as employed there is actively detrimental to performance and is not how things are done in real programs, at least on Unix systems (like Linux, where I presume you are trying to run this).
<heat>
what?
qubasa has quit [Remote host closed the connection]
<heat>
are you still not a mutex believer
<zid`>
multithreading makes things slower is just a fact
<mjg>
:(
<heat>
you're very stubborn
<heat>
aka very me
<heat>
congrats
<dostoyevsky2>
xlock compxchg seems like such a waste, why can't they find a better mechanism on the cpu level other than having your cores use up all the cpu to wait for a mutex?
<zid`>
like what?
<heat>
what?
<heat>
1) that's a spinlock, not a mutex
<heat>
2) commonly you do test-and-test-and-set instead of lock cmpxchg'ing in a loop
<zid`>
tbh it sounds like you want.. reality to be different?
<zid`>
"I want to be able to do useful work while there's no useful work that can be safely done"
<heat>
isn't that what the whole transactional memory thing is all about?
<zid`>
We already have "do other work instead" available, it's called yielding to a differnt task. But nothing is going to be able to make you be able to do work while you can't do work
gog has quit [Quit: Konversation terminated!]
m257 has joined #osdev
xenos1984 has quit [Ping timeout: 245 seconds]
xenos1984 has joined #osdev
<Ermine>
RTW failed to launch in Alpine. :(
<heat>
TRIARIIIIIIIII
<heat>
i'll never understand why they picked a squeaky pre-teen to voice RTW units
<Ermine>
triarii didn't reach Alps this time
<heat>
get owned hannibal
<mjg>
what's rtw? return to wakanda?
<Ermine>
rome: total war
<mjg>
you thinkin' about the roman empire a lot
<mjg>
anyhow linux gaming is like linux wifi in 00s
<mjg>
if it works, it mostly does not
<mjg>
and if it does not, it does not
<heat>
linux gaming actually works fine these days
<Ermine>
This time I test Wine on musl in particular
<heat>
AC routinely shits itself if the game has it, but most games work
<heat>
thank you valve
<Ermine>
It could be attributed to dev version of wine
<Ermine>
I'm also downloading red alert 3, so let's think about the empire of the rising sun
<Ermine>
I guess it won't work though
<GeDaMo>
There's a game called 0AD, real time strategy, Linux native
bitoff has joined #osdev
gog has joined #osdev
dude12312414 has joined #osdev
zetef has joined #osdev
m257 has quit [Quit: Client closed]
m257 has joined #osdev
zetef has quit [Ping timeout: 245 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
m257 has quit [Ping timeout: 250 seconds]
<netbsduser`>
heat: it's fine
<netbsduser`>
it's just a time traveller from the turn of the millenium
<netbsduser`>
kqueue was just invented and solved the problems of select()/poll() and has allowed web servers to scale right up
suqdiq has joined #osdev
goliath has joined #osdev
<zid`>
Iron plates? In *my* copper belt? It's more likely than you think!
<Bitweasil>
You know what really upsets Linux? When kzalloc doesn't return a zeroed page.
<nikolapdp>
yeah that would make sense
<nikolapdp>
it would upset me to ask for zeroed pages and i don't get them
<nikolapdp>
*me too if i ask
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
zxrom has quit [Quit: Leaving]
<zid`>
yea I'm not sure that's just a linux thing
<Bitweasil>
_whistles quietly_
<Bitweasil>
So, DC... data cache commands... on ARMv8, include "DC ZVA." Zero Virtual Address.
<Bitweasil>
Which is used *extensively* to do exactly that.
zxrom has joined #osdev
<heat>
oh is this a cache coherency thing?
<heat>
might be missing a dma_wmb()
<Bitweasil>
No, I'm working on an emulator.
<heat>
dc zva bug then?
<Bitweasil>
This is a "I made all DC instructions a NOP because I missed that the zero cache line was an option in there."
<Bitweasil>
So, yeah, bug. ;)
<heat>
haha
<geist>
ah yep!
<geist>
make sure CTR_EL0 matches it too, since one of the fields there is the size of the DC ZVA block
<heat>
the idea of missing a dma_wmb() and dc zva not writing back was more enticing :(
<geist>
but 99% of the time it's the same as the cache line size
<heat>
i like fun hard bugs to figure out
<geist>
some code in various libs will read ctr_el0 and then compute the loop right then
<nikolapdp>
heat we already established you're a masochist
<heat>
who doesn't like a hard bug?
<nikolapdp>
exactly what i am talking about
<heat>
fuckin WEBDEVS
<nikolapdp>
wat
<Ermine>
fwiw wine doesn't work very good on wayland
<heat>
works okay on my end
<FireFly>
I use it almost daily under wayland, but admittedly only for one program and through a launcher that manages the wineprefix correctly for it for me
<Ermine>
tried red alert 3, I can't click anything in it under wayland. It works under x11 though
<Ermine>
And I guess anyone can modeset under X11?
<FireFly>
maybe wrapping it in the whatsitcalled, gamescope helps?
<Bitweasil>
geist, isn't the size of the DC ZVA block set in DCZID_EL0?
<Bitweasil>
(I'm not seeing it in CTR_EL0 as a field)
<geist>
you are correct sir
<geist>
it's the *other* cache el0 register :)
<Bitweasil>
But, yeah, I'm aware of that interoperation and plan to respect it. :D
blockhead has quit []
<geist>
perfect
<heat>
geist misremembered an aarch64 architectural detail???
<heat>
party time!
<geist>
i know!
* geist
is old and goes out behind the shed
<heat>
whats your favourite operating system
<Bitweasil>
"Whatever has pissed me off least lately." Currently, Linux in the Qubes meta-OS system.
<heat>
wrong answer
<heat>
the right answer is either solaris or windows me
<zid`>
The OS that has pissed me off the least lately is erm, amiga workbench?
<mjg>
ey geist want to get triggered?
* geist
goes into a blind rage
<geist>
AMIGAOS argh!
* geist
throws a tantrum
<zid`>
do I need to normalize for hours used
<mjg>
well i did not watch the shit and it is out of my history and does not easily come up in searches either
<mjg>
anyhow
<nikolapdp>
SOLARIS
<mjg>
dude claimed he worked for 25 years on his os
<mjg>
and it finally is great
<mjg>
turns out by that he meant his custom linux distro
<heat>
ofc strscpy is not standard, neither is strlcpy
<mjg>
strlcpy IS standard
<mjg>
8/
<heat>
when was that added?
<mjg>
maybe last year or so
<nikolapdp>
it's not standard i think
<mjg>
it was added to posix
<heat>
okay so not standard
<nikolapdp>
The strlcpy() and strlcat() functions first appeared in OpenBSD 2.4, and made their appearance in NetBSD 1.4.3, FreeBSD 3.3 and glibc 2.38.
<nikolapdp>
January 7, 2024
<nikolapdp>
from the man
<Ermine>
kernel is a freestanding environment though, does it bother with whether funcs are standard?
<nikolapdp>
nope
<nikolapdp>
you don't even need to bother yourself if you reimplement stuff either
<mjg>
oh wait, it landed in glibc and maybe i crossed the wires on it stemming from landing in posix first
<heat>
Ermine, it's a good help if you don't need to roll your own because all the standard functions are garbo
<bslsk05>
www.austingroupbugs.net: 0000986: Would it be worth investigating adding strlcpy(), strlcat(), wcslcpy() and wcslcat()? - Austin Group Defect Tracker
<mjg>
so i grepped for strscpy and the uses i found so far are purplexing
<mjg>
and you don't even have to do it, you can strdup to have it taken care of for you
<nikolapdp>
alternatively, stdrup(str)
<nikolapdp>
kek
<mjg>
you may also notice the string is not getting truncated compared to your previous examples
<heat>
strdup isn't standard before C23
<heat>
again, C people are anti-useful
<nikolapdp>
POSIX.1-2001.
<nikolapdp>
good enough for me
<heat>
thank you mrvn
<mjg>
i have to concede string handling in c is avoidably error prone
<nikolapdp>
sure
<nikolapdp>
but not nearly as bad as heat would like you to think
<mjg>
i just don't think you made a legitimate case with the shorter buffer
<nikolapdp>
also, don't forget, his c has classes and lambdas
<mjg>
's liek a big deal if you truncate
<mjg>
despite what openbstards like to claim in their strlcpy
<heat>
everything in C is error prone and has been since the conception
<zid`>
C standards people are pro-C++ and anti-C-usefulness agreed
<mjg>
well c is a shite language, who is even disputing that
<zid`>
strdup should have been standard in 1991
<nikolapdp>
that's not wrong
<heat>
mjg, look around
<zid`>
now they're like "whaa it's too late and it would clash with existing stuff" on literally anything suggested
<mjg>
nikolapdp: are you disputing c is a shite language
<mjg>
MOFO
<Ermine>
mofo or mofer?
<nikolapdp>
i didn't say it wasn't a shit language
<mjg>
i would ask zid but we are on mutual ignore
<mjg>
did he say something
<nikolapdp>
i am saying it's way less shite than some people here claim
<heat>
you can't even write a MIN(a, b) macro without footgunning yourself
<zid`>
A lot of the shitness in C is trivially resolved in practice, it's just very rarely actually done
<nikolapdp>
then don't
<nikolapdp>
simple as that
<zid`>
not writing MIN as a macro or passing it ++s, etc
<mjg>
i'm susprised in rust you don't have to min(a,b).unwrap()
<nikolapdp>
it's really not that hard
<nikolapdp>
kek
<zid`>
but the standard refused to supply it, so now we have to write it as a function, and run into linker issues cus EVERYONE has to define it themselves, etc
<nikolapdp>
static inline?
<heat>
i agree, functions and macros are overrated
<mjg>
unemployment.unwrap().collect()
<heat>
do everything manually
<zid`>
static means a copy in every .o
<nikolapdp>
it's min
<mjg>
heat go take a walk or something
<nikolapdp>
it's going to be inlined
<nikolapdp>
lol
<zid`>
and you need the linker to dedup them, but actual linkers don't, afaik
<zid`>
pick something vaguely more complicated than min then
* Ermine
goes in line
<heat>
sigh
* Ermine
gives gog a piece of cheese
<mjg>
i'm guessing you donated 100 peruvian peso to a female twitch streamer and are not upset she does not want a date
<mjg>
or something
<heat>
this is not worth it if the ppl involved defend not being able to define a MIN(a, b) without footguns
<mjg>
s/not//
<mjg>
who the fuck is defending it
<heat>
boss, look around
<mjg>
macros are well known error prone fuckers
MiningMarsh has joined #osdev
xenos1984 has joined #osdev
<zid`>
don't worry, I've yet to see a single C++ user
<nikolapdp>
i literally said don't do MIN(a, b)
<zid`>
acknowledge that it's shit
<nikolapdp>
what are you saying heat
<zid`>
At least some C people do, so we win
<nikolapdp>
kek
<heat>
yes, you're defending not being able to define a basic MIN(a, b)
<mjg>
heat: so what's her name
<mjg>
is it some pool streamer?
<zid`>
good news, you can't do it in C++ either
<zid`>
or rust
<heat>
c++ has std::min(a, b)
<heat>
with TYPESAFETY
<zid`>
I said basic
<heat>
and LACK OF MULTIPLE EVALUATION
<mjg>
std::min(a, b).unwrap
<zid`>
not a 40 page template you can't debug without special tools, if at all
<Griwes>
zid`, C++ is shit to an extend, but that extend is what came from C or from before like 2008 :V
<zid`>
Griwes: and C is shit
<zid`>
we should have fixed C first
<heat>
template <typename T> T min(T A, T b) { return a < b ? a : b; }
<nikolapdp>
what if they are differnt types
<Griwes>
yes, C is what caused a lot of C++'s shittiness, yes
<zid`>
I was reponding to you saying that
<Griwes>
nikolapdp, std::min<desired_type>(a, b)
<zid`>
not getting any more basic here
<Griwes>
it's funny because I just had to do exactly that to fix an error message minutes ago
<heat>
mjg, it's gothamchess!!
<mjg>
heat: OH
<zid`>
also now I suddenly have to know all the type promotion rules to not run into bugs
<mjg>
heat: fuck gothamchess
<zid`>
C++ solves nothing
<Griwes>
lol
<mjg>
dude is a massive twat if you look into it
<zid`>
it just moves all the problems around and claims they're intractable
<gog>
just use c#
<heat>
mjg, what?
<heat>
i like gothamchess :(
<zid`>
rust solves one half by making everything super strictly typed with no promotions, then fails to be actually a language you can write code in, so you still have no min(), rip
<mjg>
so you know the hans niemann drama
<heat>
yep
<mjg>
dude was farming it big time, typical social media person behavior
<Griwes>
chess simp is where it's at
<mjg>
but when called out on it he lied and claimed otherwise
<mjg>
he said was just trying to help hans
<mjg>
that's why all the content
<mjg>
dude is also best buds with nakamura, which is a known twat
<heat>
he's typically pretty transparent
<heat>
with i.e carlsen content farming
<mjg>
no, he is lying in a way which appears transparent
<Griwes>
you know who's not lying? chess simp
<mjg>
admit this and that in a positive light, get some credibility
<mjg>
Griwes: is that an actual person? like what are you even saying man
<Griwes>
chess simp doesn't have anything to admit!
<mjg>
i had dealings with a fucking fanboy who "linus this", "linus that" i have some aversion to the name
<heat>
why's it unavailable?
<sortie>
psst wanna deal
<sortie>
heat, you're having a mild case of WEST
<heat>
mjg, i mean, coloquially ppl call him linus not torvalds
<mjg>
i heard
<sortie>
heat: Try be french and live C'EST
<heat>
oui
<mjg>
i am saying there was a twat who would not shut up about him
<sortie>
(Or wait 36 minutes)
<mjg>
and who as far as i know never even sent an email that the L man read
<mjg>
ooh i get it
<mjg>
the e-girl is andrea botez
<sortie>
Hey man I hear you holding Torvalds ppst wanna deal
<mjg>
yo uhave poor taste
<heat>
oh god not andrea
<heat>
she's too loud
<sortie>
<mjg> ther is this funny saying tho: "never meet your idols" ← I have a counterpoint: That's called Thursday.
<mjg>
what, you met rob pike or something? ;)
<mjg>
heat: i thought the other one is too old for you
<heat>
oh huh andrea is my age
<heat>
cool
<mjg>
ye so the date did not go well, did it
<mjg>
to my undestanding she is like a senior PHP dev at chess
<mjg>
can demolish people who don't play but below competency level vs anyone good
<heat>
funny actually, they've been on a tournament these last few days
<heat>
i idle watched yesterday
<mjg>
that's when you deciced to ask her out
<heat>
obviously
<mjg>
she sounds like a 40 y/o alcoholic
<mjg>
for
<mjg>
real
<heat>
i have to say, 1800 classical is unbearable to watch
<mjg>
well it is way above what almost everyone who touched the game will ever reach
<heat>
it is not nearly as precise as IM or GM
<mjg>
oh ye
<heat>
correct, but around the GM level they see lines in the engine and the guy does it
<mjg>
you are the guy in the chat aren'ya
<mjg>
claiming whoever is playing is trash
<heat>
at the 1800 level they play slightly imprecisely
<mjg>
so for example i was watching the candidates
<heat>
it's not tremedously poor, but it's sus
<mjg>
well, not a chess player myself, but from what i'm told real chess competence starts around 2200 or so
<mjg>
and even then you are terrible compared to the top
<heat>
yeah
<heat>
i mean the M man destroys most GMs
<heat>
super GMs even
<mjg>
you can spell out Magnus, it's ok
<Griwes>
Carlos Magnusson
<mjg>
Bobby Morphy is the OG chad
<heat>
paul fischer
<mjg>
there is a great dude "andras toth"
<mjg>
retired IM who is actively coaching and posting educational content
<mjg>
likes to talk mild shit which i find enjoyable
<heat>
i'm tired of learning
<heat>
finegold has great educational content though
<mjg>
600 chess.com is a respectable rating for you to retire at
<heat>
like a whole 1hr course on the sicillian
<mjg>
i'm happy you reached your goals
<heat>
hey, i don't play chess.com
<mjg>
then 800 lichess.org
<heat>
i play lichess 😎😎😎
<heat>
FOSS!
<mjg>
what's your username
<mjg>
why_do_i_suck?
<mjg>
OnyxDev?
<heat>
i don't remember
<heat>
i play exclusively without being logged in now
<mjg>
so it is rated < 1000
<mjg>
even full stack node.js devs would think it's funny
<heat>
if i have no rating and no real stake on the games i don't get too pissed
<mjg>
serious q, you take losing seirously?
<heat>
oh absolutely
<heat>
i hate hate hate losing
<mjg>
well that's a bummer
<heat>
on anything
<mjg>
you are expected to lose about half of the games (and i'm including existence of draws here)
<mjg>
so
<heat>
yep
<mjg>
maybe you should seek another endeavor
<mjg>
so you are pissed becuase you got scholar mated?
<heat>
ofc
<mjg>
and not because of andrea?
<mjg>
so i was playing hyperbullet in berserk mode and some twat was talking shit to me after losing, was that you?
<heat>
i only play bullet
<mjg>
rly?
<heat>
but seriously i don't talk shit after losing
<mjg>
too angry to type?
<heat>
i'm not a sore loser, i just hate losing
<heat>
it pushes me
zetef has joined #osdev
<mjg>
serious about bullet?
<mjg>
at least it comes with built-in excuses
<mjg>
"bad premove"
<heat>
no i don't care about bullet with my unrated acc
<heat>
well, !acc
<mjg>
i am asking if you genuinely only play bullet
<heat>
yes
<mjg>
it is funny to watch at high level
<mjg>
when they enter a scramble
<heat>
everything else feels too serious and in that case i can log in and start playing real matches (and get real mad over time)
<heat>
blitz i can also tolerate
<mjg>
3+0?
<mjg>
look mofo, real men only play hyperbullet or classical
<heat>
lichess classical is funny
<heat>
i feel weird playing classical cuz i can't calculate too much, because i'm bad
<mjg>
if i wanted to calculate i would have been born as cassio
<heat>
casio
<heat>
i'm a ti nspire cx
<mjg>
cassio is the italian vairant
<heat>
the cx 2 calculators have PYTHON
<mjg>
8S
<mjg>
what fucking cpu is in there
<mjg>
sounds like you are carrying an itanium rack
<heat>
ARM9-26EJ-S
<heat>
i don't have a cx2, that's too new, i only have a cx
<heat>
it is amusing to see that across the nspires they use the same ARM9 core, just with higher clocks
<heat>
15 bucks gets you a quad-core cortex-a53, and the nspires are 200 bucks each
<heat>
i've been getting random OOPSes from time to time, probably time to test RAM and see if its all okay
<heat>
upstream has been buggier than usual though
<zid`>
heat: did you get your kkk hat out and whip yourself this week?
<heat>
what
<zid`>
capirote
<zid`>
The fuck kind of iberian are you
<heat>
what tf is that
<heat>
oh that was spain-only apparently
<zid`>
can't even afford kkk hats in poortugal :(
<zid`>
Think of how much racism they could do with proper funding!
<nikolapdp>
real racism is the friends we've made along the way
<zid`>
I have to make friends to be racist now? fucking raising the bar on me
<nikolapdp>
no, that's the consequence
<nikolapdp>
not the cause
<nikolapdp>
or prerequisite rather
<zid`>
journey + friends -> racism
<zid`>
so no friends no racism
<nikolapdp>
):
<nikolapdp>
more like racism -> journey + friends
<zid`>
No, if that were the case, heat would have left porutgal and have friends
<nikolapdp>
ah you're right
<geist>
what the heck is everyone going on about?
<geist>
i look away for an hour
<heat>
i was talking about how the nspire cx 2 has python and uses an arm9
<heat>
which is bizarre, i'd love to know where the $199 are going to
<heat>
i guess they could make an argument for battery life but... yeah i don't really buy that why is that calculator so expensive
<nikolar>
Is that an arm board heat
<heat>
its a graphing calculator
<nikolar>
Ah fancy and overpriced
<heat>
they are all extortionally priced and i'm pissed to find out it's literally an ARM9 cpu
<heat>
ARM9, not armv9
<nikolar>
Lol
<geist>
hey at least it’s an ARM. the TI stuff stuck with z80s far longer than they should have
<childlikempress>
what's wrong with z80
<geist>
nothing really. jhust that heat is complaining about old cores
<heat>
these are new things with high prices using old cores, that's my problem
<nikolapdp>
also z80 is discontiued
<nikolapdp>
rip
<heat>
they have this line of calculators since 2011 and they literally didn't change the chip, just clocked it higher
<nikolapdp>
maybe you can still find a 6502 based calculator
<zid`>
do you can still buy fakes
<zid`>
dw*
<nikolapdp>
why would you change the chip
<nikolapdp>
that's a lot of code changes you need to make
<nikolapdp>
just clock it higher
<nikolapdp>
profit
<heat>
so graphing a function doesn't take ages, probably
<heat>
the ti-84 was z80 though
<heat>
i guess they left the z80 in the monochrome world
<Bitweasil>
... man, back in the day, some high school friends and I overclocked a TI-85, and I can't recall if we bricked a TI-83 or not trying to overclock it.
<Bitweasil>
Had a toggle switch for the oscillator, you could literally watch the graphs go faster when you flipped it.
<Bitweasil>
(and made most games unplayable in the deal)
netbsduser` has quit [Ping timeout: 256 seconds]
<nikolapdp>
kek
<heat>
i'm going to make a calculator of my own
<heat>
and i'll use floats because i'm not a mathmatician
<heat>
it'll be awful, but it'll be FAZT!
<zid`>
add a quake 3 button
<zid`>
that does fast inverse sqrt
<heat>
the kids will love using a calculator that can only do up to DBL_MAX
Turn_Left has quit [Read error: Connection reset by peer]
<zid`>
and skips numbers all the time
<heat>
oh i guess DBL_MAX isn't that low huh
<heat>
1.7976931348623157E+308
<zid`>
I knew it was e308
<zid`>
but not the 1.7 bit
<heat>
FLT_MAX is e38, LDBL_MAX is e4932
<heat>
i think the nspire can only do up to e100 sooooooooooo
<heat>
i'm starting to think these ti people are stealing a living
<zid`>
to be fair, that's 100 entire bytes of ram if they're using string math
<zid`>
hopefully they're doing BCD and it's actually only 50
<heat>
don't forget the fractional part
<heat>
200 bytes?!
<zid`>
but.. there is no fractional part in e notation
<zid`>
it's all fractional, if you want fractional, you need a different base
<zid`>
^ good sentence
<heat>
okay i was wrong, it can do up to e1000 and e-1000
<zid`>
That's better
<zid`>
how many ULPS
<zid`>
going to need you to key in a test suite
<heat>
idk
<zid`>
even proper calculators tend to have a bunch of buggy bad implementations of various ops
<heat>
i think the battery is a bit fucked after not being used for 4 years
<zid`>
plus they tend to lie if you use approximations
<zid`>
like if you do 22/7 with enough digits they'll just print "pi", cus that's how they do expressions
<zid`>
it's not rigorous it's just doingcmp
<heat>
nah 22/7 isn't pi on mine
<zid`>
>with enough digits
<heat>
22/7 is 22/7 until it's 3.14286
<zid`>
11^6/13 gives 156158413/3600* pi
<zid`>
on a casio
<zid`>
for example
<zid`>
It can factor out a pi without leaving lots of decimals so it just goes hurr durr must be pi * something