egg|nomz|egg changed the topic of #kspacademia to: https://gist.github.com/pdn4kd/164b9b85435d87afbec0c3a7e69d3e6d | Dogs are cats. Spiders are cat interferometers. | Космизм сегодня! | Document well, for tomorrow you may get mauled by a ネコバス. | <UmbralRaptor> egg|nomz|egg: generally if your eyes are dewing over, that's not the weather. | <ferram4> I shall beat my problems to death with an engineer.
Technicalfool has joined #kspacademia
<UmbralRaptor>
egg|df|egg: guess we got lucky?
<egg|df|egg>
UmbralRaptor: "a group calling itself the Raptor of Talons reclaimed Twistsnarl on behalf of The Song of Ankles"
<UmbralRaptor>
!!!
e14159 has quit [Killed (NickServ (GHOST command used by e_14159!~e14159@dslb-178-002-134-126.178.002.pools.vodafone-ip.de))]
e_14159 has joined #kspacademia
e_14159 is now known as e14159
<egg|df|egg>
UmbralRaptor: let me look at legends mode to see where the goblins are here
<kmath>
<jamesheathers> We live in a world where you can just go on the internet and buy a goddamn alligator, delivered to your door in 48… https://t.co/aal4z0mtjh
<kmath>
<✔nytimes> Breaking News: President Trump has canceled the June 12 summit meeting with Kim Jong-un. He cited "tremendous anger… https://t.co/NMzcj75dbg
<egg|work|egg>
!wpn UmbralRaptor
* Qboid
gives UmbralRaptor a Majorana expression-like cheque
* UmbralRaptor
annihilates the cheque with a Czech.
<egg|work|egg>
!wpn whitequark
* Qboid
gives whitequark a capital entrained 555 timer
<UmbralRaptor>
(Czech, check, and cheque are 3 flavors of the same thing, right?)
<kmath>
<mattkenworthy> By the time you're 35 and an academic, you should have a computer folder of shame where you have the papers you tot… https://t.co/xBX5jV0ZSo
<bofh>
thankfully only like 1 in 10 keratoconjuctivits cases seems to progress to it for me.
<bofh>
unfortunately, I get 5-6 of those a *year*.
egg|cell|egg has joined #kspacademia
<bofh>
so yeah, I get uveitis about once every two years, slightly more frequently it feels like, since I had one (mild, thankfully) case last year too.
egg|cell|egg has quit [Read error: Connection reset by peer]
egg|cell|egg has joined #kspacademia
egg|phone|egg has quit [Ping timeout: 202 seconds]
egg|phone|egg has joined #kspacademia
egg|cell|egg has quit [Ping timeout: 194 seconds]
tawny has quit [Read error: -0x7880: SSL - The peer notified us that the connection is going to be closed]
<kmath>
<bofh453> As it stands, I get to instead enjoy periodically being partially blind and rocking the laser safety goggles look (… https://t.co/YuCTsYC0kv
<kmath>
YouTube - Caught in the Storm: Extreme Weather Hazards
<egg|zzz|egg>
hm, there was a shorter one about the same incident 6 months ago
<bofh>
yeah, they often do that.
<bofh>
a short video specifically about the mishap, then a longer one detailing the lead-up, what caused things to go wrong (i.e. what were the ultimate causes as opposed to the proximate causes), lessons learned & direct advice to all parties involved as well as often state gov'ts.
<iximeow>
actually today's scared cat noises: "x86 registers overlap and this has implications for constructing SSA over x86 machine code"
<iximeow>
tomorrow's scared cat noises: "avx512 registers might not exist"
<bofh>
I find it easier to just assume AVX512 isn't a thing so far, there's no reason a compiler should output code targeting it by default, SKL is *far* too recent.
* iximeow
looks at the three knl processors that have been sitting in a paper envelope for months
<egg|zzz|egg>
moo
<e14159>
bofh: Just looked up uveitis, and ouch.
<Fiora>
x86 registers overlap but so do most architectures' registers T B H
<egg|zzz|egg>
!wpn Fiora
* Qboid
gives Fiora a staff
<egg|zzz|egg>
appropriate
<egg|zzz|egg>
Fiora: did you add clappers to those bells
<Fiora>
the ones on the hairband?
<egg|zzz|egg>
yeah
<bofh>
personally a fun one for me is mm[0-7] overlap with st([7-0]) (this one's internal on the register file, and why you get fun things happening if you use MMX opcodes, then x87 without calling emms first).
<Fiora>
yeah
<Fiora>
bofh: technically that one's simpler to model 'cause you can just declare each of them to be a single state for aliasing purposes. but yeah that one is fun
<egg|zzz|egg>
!wpn -add:wpn resistor
<Qboid>
egg|zzz|egg: Weapon already added!
<egg|zzz|egg>
!wpn whitequark
* Qboid
gives whitequark an argon dipole vertex-like cheque
<egg|zzz|egg>
Fiora: and the ringing isn't annoying?
<Fiora>
so that's actually kind of a funny thing
<Fiora>
in general, i'm very sound-sensitive!
<egg|zzz|egg>
I mean it does sound like cows which sound nice tbh
* egg|zzz|egg
wonders whether cows would like the cosplay
<Fiora>
like, specifically as an autistic thing, i generally react very badly to unwanted loud noises
<Fiora>
But
<Fiora>
For some reason
<Fiora>
these have never bothered me
<Fiora>
they are behind my ears, which helps, but i honestly don't know why they don't. maybe it's the frequency.
<egg|zzz|egg>
Fiora: are you bothered by the sound of actual cowbells
<SnoopJeDi>
does "control" over them help mediate the "unwanted" part, maybe?
<Fiora>
i don't hear actual cowblels very often
* egg|zzz|egg
suddenly realizes that it might not be easy to get to a field full of cows where Fiora is
<Fiora>
also i don't think they actually sound like cowbells? i mean, i didn't exactly model them with sound in mind
<Fiora>
I wonder if fusion 360 can tell you the frequency at which a bell will ring
<SnoopJeDi>
I'm the same way with some noises but substantially less bothered if I'm the one doing it because it's predictable or something
<egg|zzz|egg>
dunno, they vaguely did from that tiny sample, probably also depends on the cow
<egg|zzz|egg>
or rather on the bell :-p
<Fiora>
what determines the fundamental frequency of a bell
<egg|zzz|egg>
hm
* egg|zzz|egg
casts "summon physicist" in the general direction of bofh
<SnoopJeDi>
speaking of Fusion 360... Fiora have you seen Wintergatan's CAD videos? I didn't realize he was designing a marble machine sequel, but they're nice design vids.
<egg|zzz|egg>
(which iirc is touched on in Barnes's Nice Numbers?)
<SnoopJeDi>
...as well as a video title something like "Can Fusion 360 Handle Large Assemblies?" (spoiler alert: no)
<SnoopJeDi>
even accounts for different striking models, very nice.
UmbralRaptor has quit [Quit: Bye]
<egg|zzz|egg>
Fiora: different cows have different bells that sound different https://www.youtube.com/watch?v=GoO5Rc4xPmQ so it's hard to say whether yours sound like cowbells, they don't sound fundamentally outlandish for cowbells but I don't have particular experience in cows or bells
<egg|zzz|egg>
(okay I do observe cows with telescopes sometimes but that doesn't count)
<whitequark>
weirdly enough, i react very badly to unwanted noises mostly regardless of their loudness
<whitequark>
loud noises are generally worse but their unwantedness is far more of a factor
<egg|zzz|egg>
whitequark: unrelated, is your nose better?
<egg|zzz|egg>
!wpn whitequark
* Qboid
gives whitequark a lambda GIF
<whitequark>
egg|zzz|egg: nah
<egg|zzz|egg>
ow
<egg|zzz|egg>
and is котя still meowing?
<whitequark>
yes
<bofh>
christ I still can't get over the fact that the resistor shortage is due to one company being dipshits combined with *zero* surplus production capacity for resistors.
<kmath>
<AmyZenunim> Due to European data protection regulations, you are required to meow back at any cat who meows at you, effective May 25th, 2018.
<whitequark>
bofh: commenters also suggested that this might be the way yageo gets money for capital investments
<whitequark>
which might reflect better on yageo but worse on capitalism
<iximeow>
Fiora: while x86 is not unique in having overlapping registers, it does not frazzle my brain any less in trying to figure out how to efficiently model it in my code
<iximeow>
(i count my blessings that unlike, some microcontrollers, i can't write to memory addresses that are just aliases of working registers)
<Fiora>
why would it be harder?
<iximeow>
because in those architectures any write to an unknown address may modify registers
<Fiora>
the LLVM register model works fine for x86 (every register is made up of at least 1 register unit. register units are unique. multiple registers can share the same unit)
<Fiora>
oh, i meant why would x86 be harder
<iximeow>
oh yeah, that's approximately what i'm doing
<iximeow>
i know not nearly enough about how LLVM models programs
<Fiora>
so basically you have units = 0, 1 .... N
<Fiora>
register 0 = { some list of units }
<Fiora>
register 1 = {some list of units} etc
<Fiora>
in terms of data structure
<Fiora>
optionally you can, if you need it for your analysis, store which registers are subregisters of which other registers or such. but for most purposes i think just unit tracking is enough
<SnoopJeDi>
and units themselves are non-overlapping?
<SnoopJeDi>
ah you said unique
<Fiora>
yes. register units are unique and nonoverlapping.
<Fiora>
so for example
<Fiora>
suppose AL = { 0 }
<Fiora>
AH = { 1 }
<Fiora>
AX = { 0, 1 }
<Fiora>
EAX = { 0, 1, 2 }
<Fiora>
RAX = { 0, 1, 2, 3 }
<Fiora>
optionally, if it makes it easier, you could make all register units the same size, in which case you'd get EAX = 0,1,2,3 and RAX = 0,1,2,3,4,5,6,7. depends on what you need things for.
<Fiora>
on the gpu architectures i've worked on we kept that invariant, every RU the same size. on x86 they don't.
APlayer has quit [Ping timeout: 182 seconds]
<iximeow>
that sounds equivalent but slightly differently phrased from what i'm doing. huh.
<iximeow>
i also haven't been able to make enough time to seriously distinguish modeling from implementation details
<whitequark>
it doesn't even really have proper registers
<iximeow>
well, it has The Accumulator
<iximeow>
or am i thinking of the wrong one?
<whitequark>
it does, though, have data memory (that can be used like registers), data memory (that cannot be used like registers), code memory (that may or may not overlap data memory at all but the first 256 bytes), and indirectly addressable memory (that can only be indirectly addressed, and if you address it diretly, you end up in I/O memory instead)
<whitequark>
also has paged memory, which is data memory that can be accessed with a more compact encoding, and using an I/O register no two manufacturers agree on location of
<iximeow>
oh that last one sounds the best
<whitequark>
the accumulator is just an I/O register that gets used by certain instructions
<whitequark>
just like multiplications use both A and B
<whitequark>
and indirect accesses use P2/MDATA/XDATA/etc
<whitequark>
it's truly heinous
* iximeow
suppresses urge to read more
<whitequark>
still more sane than, say, 8-bit PICs
<bofh>
I'm actually torn on which µarch is worse: 8051 or PIC16-series?
* iximeow
tries to teach this code where the fifth parameter to WriteProcessMemory is coming in
<whitequark>
those have all their memory in four register banks
<bofh>
I think PIC16 series, but marginally
<iximeow>
bofh: i kind of like PIC16
<whitequark>
most of that memory is I/O memory, but some of it is RAM
* iximeow
hides
<whitequark>
the RAM is randomly spread across I/O memory
<whitequark>
and the rest is just holes
<whitequark>
also it takes eight cycles to switch between two arbitrary banks
<whitequark>
because the piece of shit isn't even pipelined
<whitequark>
iximeow: PIC16 is the worst.
<whitequark>
there's a short story in russian about a programmer slowly going insane trying to fit a firmware on PIC16
<iximeow>
whitequark: i don't recall which compiler it is, but i used a foss C compiler targeting PIC-8 that had multiple branches for any memory write to ensure that the right memory bank was selected
<whitequark>
PIC16 was my first chip and I relate to it extremely
<whitequark>
sdcc
<iximeow>
yes!
<iximeow>
that was the one
<whitequark>
but all of them do that
<whitequark>
well, it's not exactly multiple branches
<whitequark>
only for indirect writes
<iximeow>
i guess that makes sense, from C you don't know when you need to switch banks?
<iximeow>
whitequark: are you familiar with pickit2?
<whitequark>
no, you know it, of course
<whitequark>
thebackend does, anyway
<whitequark>
post-RA codegen
<whitequark>
pickit2, no, doesn't ring a bell
<iximeow>
hmm.. what guides the compiler to know what bank a pointer should be in? if you have a function that takes char* and writes to it...
<whitequark>
you could put an attribute on a pointer
<whitequark>
but what I mean is the backend knows it for direct accesses
<iximeow>
ah ok. it's a (very EOL) programmer i've been picking apart. it claims to program my PIC24FJ256DA206 incorrectly but i'm trying to convince myself that's a programmer error
<iximeow>
(that pic16 is 8-bit and pic18 is 16-bit is obscene)
<whitequark>
also pic12.
<iximeow>
i've never seen pic12?
<bofh>
PIC12 is the same ISA as PIC16, iirc?
<whitequark>
I think it's slightly shittier
<bofh>
at least, say, 12C509 is the same ISA as 16F88
<whitequark>
hm
* egg|zzz|egg
meows at whitequark
<iximeow>
egg|zzz|egg: aren't you zzz
<egg|zzz|egg>
hmm
<egg|zzz|egg>
;kmath am I zzz
<bofh>
(12C508 is the PROM version, 12C509 is the EEPROM ver, inexplicably every instructables guide uses the former for *no good reason at all*).
<egg|zzz|egg>
uh
<egg|zzz|egg>
kmath?
<bofh>
AVR is a much saner ISA anyway
<egg|zzz|egg>
;8ball am I zzz
<kmath>
egg|zzz|egg: Better not tell you now
<iximeow>
whitequark: in case you decide to look too much at pickit2 programmers, the PC-side controller speaks a custom "script language" to the programmer, which itself occasionally blurts out bytes to the device being programmed
<bofh>
22:24:36 <@whitequark> PIC16 was my first chip and I relate to it extremely
<bofh>
Same, unfortunately.
<iximeow>
and *that* "script language" is what i'm trying to make sense of
<iximeow>
(bofh: that is why i was looking at .hex files of pic firmware)
<egg|zzz|egg>
!wpn iximeow
* Qboid
gives iximeow a RFC 2549 banana
* iximeow
feeds RFC 2549 the banana
<bofh>
wouldn't the carrier eat the banana?
<iximeow>
aha
* iximeow
teaches
<iximeow>
the code that VirtualAlloc doesn't clobber RSI*
<bofh>
isn't rdi/rsi callee-save on Win64?
<iximeow>
i'm a pessimist and it didn't know VirtualAlloc conforms to anything
<kmath>
<✔yayitsrob> Good news! The asteroid that killed the dinosaurs started so many wildfires & vaporized so much rock that it choked… https://t.co/jt86mhBMT9
<bofh>
!wa mass of 10^11 protons in nanograms
<Qboid>
bofh: Seems that Wolfram is unable to understand that.
<bofh>
!wa mass of 10^11 protons in MeV/c^2
<Qboid>
bofh: Seems that Wolfram is unable to understand that.
* bofh
dropkicks W|A
<bofh>
!wa mass of 10^11 protons
<Qboid>
bofh: Seems that Wolfram is unable to understand that.
<bofh>
are you shitting me
<iximeow>
!wa 10^11 protons as potatoes
<Qboid>
iximeow: Seems that Wolfram is unable to understand that.
<bofh>
!wa mass of 10 protons
<Qboid>
bofh: 10 p (proton) | mass: 9382.7203 MeV/c^2
<iximeow>
lmao
<bofh>
!wa mass of 10**11 protons
<Qboid>
bofh: Seems that Wolfram is unable to understand that.
<iximeow>
!wa mass of 10e11 protons
<Qboid>
iximeow: 10×10^11 p (proton) | mass: 9.3827203×10^14 MeV/c^2
<iximeow>
woohoo!
<bofh>
finally
<iximeow>
off by an order of magnitude but whatever
<bofh>
so about 1.673 picograms
awang has quit [Ping timeout: 194 seconds]
<iximeow>
bofh: what's special about 10 xor 11 protons?
<kmath>
<whitequark> there are crystals that are highly ductile and elastic ⏎ usually we call them metals ⏎ on the other hand, metals can so… https://t.co/ozk3IeBCg9