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.
<kmath> https://twitter.com/DiceBard/status/967105674684452865 <DiceBard> Dungeons &amp; Diners &amp; Dragons &amp; Drive Ins &amp; Dives https://t.co/yWE2bxWs19
<bofh> W̙͚̞͜e̵͍̥ͅḻ̗̟̻̠̠̩͟c͏o̰̮m͔͕̭e͓͔ ͍̙̭̹͢t̗͖̲ͅo̸͖̬̙ ̢̘̬̰̟F̝̠̫̼͞l̫̜͓̭a̝v̻̦̟̜̥ͅͅo͕͙̙u̝̩̤͘r͏͉̠̙̯t͡o͎ͅw̳̜̳̜̫n̬̮̳̠̟͍!͇̫̦̥̳
<awang> !wpn -add:wpn template
<Qboid> awang: Weapon added!
<awang> !wpn -add:adj mad
<Qboid> awang: Adjective added!
<awang> !wpn -add:adj American
<Qboid> awang: Adjective added!
<awang> !wpn -add:adj fuzzy
<Qboid> awang: Adjective added!
<awang> !wpn -add:wpn lop
<Qboid> awang: Weapon added!
<awang> !wpn -add:wpn camel
<Qboid> awang: Weapon added!
<awang> soundnfury: I added the "effective. Power" thing after someone else added the latest Unicode thing as a wpn
<soundnfury> :)
<awang> !wpn -add:adj ocaml
<Qboid> awang: Adjective added!
<soundnfury> !wpn -add:wpn pearl
<Qboid> soundnfury: Weapon added!
<soundnfury> !wpn awang
* Qboid gives awang a cyclic nucleotide-gated vortex
<awang> !wpn -add:adj acyclic
<Qboid> awang: Adjective already added!
<soundnfury> !wpn -add:adj garlic
<Qboid> soundnfury: Adjective added!
<soundnfury> !wpn -add:adj Gaelic
<Qboid> soundnfury: Adjective added!
<UmbralRaptor> bofh: https://en.m.wikipedia.org/wiki/D%27Alembert_operator (alternate notations)
<iximeow> !wpn nobody
* Qboid gives nobody a glass median pulse generator
technicalfool is now known as tfsleep
<bofh> UmbralRaptor: thank you for reminding me of this horror: https://twitter.com/bofh453/status/967558975721037824
<kmath> <bofh453> @stephentyrone @chordbug OH SPEAKING OF AWFUL PHYSICS NOTATION: ⏎ "Another way to write the d'Alembertian in standard… https://t.co/ugvyjSqsMh
<kmath> <cfguz> @petrmisan @fermatslibrary The Son-in-law, The Farm and The Square😋
<egg> bofh: I'd say the barn rather than the farm
<egg> "Stopped cats from dying of alcohol poisoning after walking over damp tavern floors and cleaning themselves"
<bofh> rofl
<soundnfury> ah, toady devnotes. Always glorious.
<soundnfury> (I mean, I _assume_ that's from DF...)
<bofh> Like that sounds exactly like DF patch notes, tbh.
<egg> !wpn -add:wpn arthropleura
<Qboid> egg: Weapon added!
<egg> yeah that's a 2015 patch note
<kmath> <derekhennen> Need more millipedes in your life? (Obviously, yes.) I started a Twitter dedicated solely to millipedes! Please fol… https://t.co/Evi1qs8kMq
e_14159- has joined #kspacademia
e_14159 has quit [Ping timeout: 383 seconds]
e_14159- is now known as e_14159
Profound has joined #kspacademia
Wetmelon has joined #kspacademia
<kmath> <bofh453> Ḋͮ̏̚Aͥ̂ͪ̾͝M̄́͑ͣͥŅ͛IT̋́̅̏ͤ͟.̽̑ͭͨ̃͐ͪ́ https://t.co/vYGcMm0I1S
Wetmelon has quit [Ping timeout: 186 seconds]
icefire has quit [Read error: -0x1: UNKNOWN ERROR CODE (0001)]
UmbralRaptor has quit [Remote host closed the connection]
UmbralRaptop has joined #kspacademia
<egg> !u Ḋͮ̏̚
<Qboid> U+FF24 FULLWIDTH LATIN CAPITAL LETTER D (D)
<Qboid> U+0307 COMBINING DOT ABOVE (◌̇)
<Qboid> U+036E COMBINING LATIN SMALL LETTER V (◌ͮ)
<Qboid> U+030F COMBINING DOUBLE GRAVE ACCENT (◌̏)
<Qboid> U+031A COMBINING LEFT ANGLE ABOVE (◌̚)
tawny has quit [Ping timeout: 198 seconds]
icefire has joined #kspacademia
<iximeow> !wpn egg
* Qboid gives egg a summer set
<egg> meow
<iximeow> it me
kmath has quit [Remote host closed the connection]
kmath has joined #kspacademia
Profound has quit [Ping timeout: 207 seconds]
Profound has joined #kspacademia
<UmbralRaptop> !wpn -add:adj combining
<Qboid> UmbralRaptop: Adjective added!
<kmath> <iximeow> space! station! https://t.co/XN055IusMF
<iximeow> i'm too tired to figure out how i'm going to do this better in the future so, time to sleep
<iximeow> !wpn ISS
* Qboid gives ISS a mutex
<egg> !wpn iximeow
* Qboid gives iximeow a modular invariant/supremum hybrid
<egg> !wpn -add joiner
<Qboid> egg: Invalid type
<egg> !wpn -add:wpn joiner
<Qboid> egg: Weapon added!
<egg> !wpn -add:wpn non-joiner
<Qboid> egg: Weapon added!
<egg> !wpn -add:adj zero-width
<Qboid> egg: Adjective added!
<egg> !wpn -add:adj grapheme
<Qboid> egg: Adjective added!
<egg> !wpn -add:wpn grapheme
<Qboid> egg: Weapon added!
<kmath> <whitequark> it's time to post the Unicode FAQ entry on U+034F COMBINING GRAPHEME JOINER again https://t.co/mntGMJCoY7 https://t.co/ut4CVuxBn1
* UmbralRaptop gives egg a combining graphene joiner.
<kmath> <whitequark> [poll] are you human? did you think in terms of grapheme clusters today?
<UmbralRaptop> Apparently 1/3 of whitequark's followers are cats.
<egg> UmbralRaptop: huh?
<egg> ah, that poll
<egg> UmbralRaptop: but 55% are eggs
<bofh> egg: I voted "no, yes" b/c like @alt_kia I also misread that as "graphene clusters" :P
<egg> bofh: wait are you a cat too
<bofh> egg: I prefer "device to convert stimulants into theorems" :P
<egg> bofh: s/device/a method and apparatus/
<Qboid> egg thinks bofh meant to say: egg: I prefer "a method and apparatus to convert stimulants into theorems" :P
<bofh> touché. :P
<bofh> egg: https://twitter.com/eggleroy/status/967535363119112192 wait a second, there's a "Hermitian conjugate" char?! Everyone I know, incl. LaTeX, just uses U+2020 DAGGER
<kmath> <eggleroy> @stephentyrone @chordbug @bofh453 Yeah, that's a recurring theme, see also U+22B9 HERMITIAN CONJUGATE MATRIX… https://t.co/TtKWqnR7bV
<UmbralRaptop> AAAAAAA†
<UmbralRaptop> (Incidentally, I use the actual Greek letters for math symbols, so…)
<bofh> https://twitter.com/FailsWork/status/967131928011911168 speaking of AAAAAAAAAAAAAAAAAAAAAAAAAA
<kmath> <FailsWork> Grounded. https://t.co/Zntul048eG
UmbralRaptop has quit [Quit: Bye]
UmbralRaptop has joined #kspacademia
<UmbralRaptop> ⚡⚡⚡
<egg> bofh: yeah, I tried using that on the MMP lecture notes I wrote with klickverbot@, and he correctly pointed out that nobody is going to know what this stupid symbol is
<bofh> MMP?
<egg> the trubowitz lecture
<egg> (yes, the one who photographed that ion :-p)
<kmath> <xzqx> I found him https://t.co/A9bvypfF4h
<bofh> egg: ahh. very very nice.
Profound has quit [Read error: Connection reset by peer]
<egg> !wpn whitequark
* Qboid gives whitequark an enriched guillotine with a particle attachment
<awang> TIL apparently the OCaml native compiler doesn't perform instruction scheduling on x86
* UmbralRaptop stares at thermodynamics. Why am I getting an imaginary number for the chemical potential?
<egg> !wpn UmbralRaptop
* Qboid gives UmbralRaptop a RF cyclic nucleotide-gated kank
<egg> !wpn bofh
* Qboid gives bofh a hexanitrohexaazaisowurtzitane canonical sequence
<UmbralRaptop> !wpn egg
* Qboid gives egg a multistep hafnium nabla
<bofh> This is not how you hold a soldering iron: https://twitter.com/shapoco/status/967721785448779783
<kmath> <shapoco> 人は……人はなぜ…… https://t.co/rl4j5JzifB
<bofh> UmbralRaptop: um.
<UmbralRaptop> bofh: pretty much.
<UmbralRaptop> Also, ow.
<awang> Any compiler/assembly people around?
<awang> And/or C++ people
<awang> Got some assembly and I'm not sure why the compiler is generating the code it is
<bofh> mind linking the assembly?
<awang> Uh
<awang> Hold on
<awang> Might take me a bit to untangle the relevant code from the rest of the codebase
<bofh> also godbolt.org may be useful.
<awang> Typing stuff in right now :P
<Iskierka> @bofh: I also don't think it's recommended to self-solder on assembled motherboards
<icefire> if its broken got nothing to lose
tawny has joined #kspacademia
<awang> godbolt seems to be allocating registers a bit smarter than my compiler
<awang> But besides register names used, everything seems to be about right
<awang> My compiler saved 5 registers instead of 4
<awang> Not really sure why
<bofh> Iskierka: so I've *personally* hand-desoldered/hand-resoldered Capacitor Plague from socket 370 motherboards... one of them still runs to this day.
<bofh> awang: this doesn't seem *too* bad as generated asm for that code, which means that it's above my level of compiler knowledge prolly.
<awang> I'm mostly wondering about the "call qword ptr [rax + 8]
<awang> Because the code seemed to be reloading the vtable every iteration
<awang> So I was wondering if there was something that could actually cause the vtable pointer to change between iterations
<awang> I guess some of the spills/reloads are kind of questionable, too
<awang> Like the spill to xmm1, followed immediately by a load of the same address to xmm0
<bofh> yeah okay wtf is that spill
<bofh> even more weirdly apparently that maps to #include <array>? what the shit?
<awang> Uhhh
<awang> Here's a version with less noise
<awang> Heh
<awang> gcc checks the loop condition before the function prologue
<egg> !wpn bofh
* Qboid gives bofh a thermionic queue
<egg> !wpn awang
* Qboid gives awang an insecure minion
<egg> !wpn whitequark
* Qboid gives whitequark a signalling turnstile with a semigroup attachment
<egg> !wpn котя
* Qboid gives котя a XML ℻
<awang> !slap minion
* Qboid forks the source code of minion, replaces all semicolons with greek question marks and submits a pull request
<egg> why are you slapping your cannon
<awang> Cannon?
<awang> !wpn -add:wpn cannon
<Qboid> awang: Weapon already added!
<bofh> > replaces all semicolons with greek question marks
<bofh> truly Qboid is evil here
<egg> bofh: clearly the compiler should complain that the input is not in normalization from C
<egg> s/from/form
<Qboid> egg meant to say: bofh: clearly the compiler should complain that the input is not in normalization form C
<kmath> <xeiss> #science https://t.co/YoN1y7T8eg
<bofh> egg: LOL
<bofh> I mean most of the text I deal with is in normalization form D actually (canonical decomposition).
<awang> MSVC's code is... underwhelming
<awang> Memory accesses everywhere
<awang> Actually
<awang> Apparently -O3 -> /Ox
<awang> Not /O3
<kmath> <chordowl> @bofh453 *turns on the shameless evangelism switch* rust has got you covered 😎 https://t.co/SCi1JCiErK
<egg> awang: isn't optimize for speed /O2?
<egg> !u ;
<Qboid> U+037E GREEK QUESTION MARK (;)
<awang> egg: Yep, you're right
<awang> Evidently I don't use VS enough
<egg> /O1 being optimize for size
<awang> Hm
<awang> MSVC doesn't hoist the if statement outside the loop
* egg waves a black hole around
<egg> (currently compiling principia)
<awang> !wpn -add:adj hoisted
<Qboid> awang: Adjective added!
<awang> egg: So how fun is working through the assembly for template-heavy code?
<awang> i.e. Principia? :P
<bofh> awang: IME, not.
<bofh> egg: LOL
<awang> bofh: Are you aware of anything in the C++ standard that would require the compiler to reload the vtable pointer every iteration of the loop?
<iximeow> awang: wh...at
<awang> iximeow: ?
<iximeow> waking up + trying to imagine coming across such code
<awang> iximeow: I mean, the C++ code looks relatively reasonable, right?
<awang> Does it?
<awang> It's almost std::accumulate-ish
<awang> Guess it could be
<awang> zip two ranges together and accumulate the result
<iximeow> oh, i appear to have tunnel vision'd over backscroll. sec
<awang> Ohhh
<kmath> <msdevindia> Want to prank your developer friend? Replace a semi-colon (;) with a greek question mark (;) in their C# code! http://t.co/iHTueu4HxP
<awang> "coming across such code" -> "coming across code that results in a vtable reload every iteration"?
<egg> !wpn iximeow
* Qboid gives iximeow a rhodium gasket
<egg> !seen whitequark
<Qboid> egg: I last saw whitequark on [23.02.2018 17:49:34] in #kspacademia saying: "those can pinch your fucking finger off"
<iximeow> hurm
<iximeow> so here's my tired and fairly c++-uninformed argument, awang:
<iximeow> GetLocalValue is a virtual call so something could subtype Quad and *only* reimplement that
<awang> That can't happen in the middle of the loop though, right?
<iximeow> i'm not sure why-- yeah
<awang> Hmmm
<iximeow> i also don't understand the difference between LBB2_3 and LBB2_3
<awang> iximeow: The compiler hoisted the if (local == 0) check outside of the loop
<awang> so one loop is hardcoded to do nodes[i]->GetX()
<awang> And the other nodes[i]->GetY()
<awang> Or at least that's my interpretation
<iximeow> that was my thought as well but the calls are the same
<iximeow> the only difference is how rdx is populated
<awang> Hm
<awang> You're right
<awang> They were different when disassembled locally
<iximeow> LBB2_4 the compiler clears edx, LBB2_3 it assigns edx=r15d, BUT
<awang> Oh wait
<iximeow> you could remove the test, conditional branch, and always `mov edx, r15d`, entirely discard the second branch, and it should be functionally equivalent
<egg> what if the functions have evil side-effects
<awang> egg: if only C++ had a way to indicate pure functions :(
<iximeow> oh, there's another difference
<iximeow> line 27/line 49
<awang> egg: Maybe I should start spamming [[gnu::pure]] or [[gnu::const]] everywhere
<awang> iximeow: movsd, xmm0, qword ptr [rax]
<awang> Or [rax + 8]
<awang> ?
<awang> If rbx is the start of the nodes vector and rbp is the index
<awang> that is
<iximeow> yeah, though they're [rcx] and [rcx + 8] for me..
<iximeow> i was just puzzling over what rbx is
<iximeow> nvm missed the `mov rbx, rdi`
<awang> Ah, yes
<awang> Apparently messing with the pure/const attributes caused register allocation to come out differently
<awang> Right, so the call to the same address makes sense
<awang> I got the call mixed up with the GetX()/GetY() calls
<awang> Which were inlined, apparently
<iximeow> yeah, the call qword ptr [rbx + 32] is GetLocalValue
<iximeow> s/rbx \+ 32/rax + 8/
<Qboid> iximeow meant to say: yeah, the call qword ptr [rax + 8] is GetLocalValue
<awang> iximeow: Apparently the reason the vtable pointer has to be reloaded is because of placement new
<awang> bofh: ^
<bofh> placement new?
<awang> bofh: Construct an object in already allocated memory
<bofh> ahhhhhhh
<kmath> <ManishEarth> @whitequark pawcement mew ⏎ ⏎ meowlocation
<egg> awang: so in case the functions have evil side effects that change *this?
<awang> egg: Yes, apparently
<awang> bofh: Apparently it's useful. And it's also interfering with optimizations :(
* awang tries to sprinkle some functional-ness into his C++ codebase
<egg> !u ▯
<Qboid> U+25AF WHITE VERTICAL RECTANGLE (▯)
<kmath> <jckarter> $ cc -Wint-conversion foo.c ⏎ foo.c:10:4: theres actually zero difference between signed &amp; unsigned things. you imbecile. you fucking moron
UmbralRaptor has joined #kspacademia
UmbralRaptor is now known as Guest51828
UmbralRaptop has quit [Ping timeout: 207 seconds]
Guest51828 has quit [Client Quit]
UmbralRaptop has joined #kspacademia
UmbralRaptor has joined #kspacademia
UmbralRaptor is now known as Guest51582
UmbralRaptop has quit [Ping timeout: 383 seconds]
Stratege__ has joined #kspacademia
Stratege_ has quit [Ping timeout: 198 seconds]
<egg> !wpn awang
* Qboid gives awang a Norgg/infinity hybrid
<egg> !wpn bofh
* Qboid gives bofh a barrelling ink bottle
<bofh> !wpn egg
* Qboid gives egg a radium kitten
<egg> should I pet the kitten
<iximeow> !wpn egg's kitten
* Qboid gives egg's kitten a relational tangent delegate with a speech continuum attachment
<Guest51582> egg: pet the kitten with waldos?
Guest51582 is now known as UmbralRaptor
* egg pets UmbralRaptor
* UmbralRaptor purrs.
<soundnfury> !wpn UmbralRaptor
* Qboid gives UmbralRaptor an invertible heptode
<UmbralRaptor> !wpn soundnfury
* Qboid gives soundnfury a frangible Van Allen wrench which strongly resembles a delegate
<soundnfury> a 'frangible wrench' sounds less than entirely useful...
<soundnfury> maybe it's like a torque screwdriver, but a bit more 'final' if you overdo it?
<UmbralRaptor> Presumably.
<UmbralRaptor> Also, a Van Allen wrench might be a bit radioactive.
<soundnfury> but it protects the nut you're tightening from radiation, so, v0v
<UmbralRaptor> hrm
<UmbralRaptor> !wpn
* Qboid gives UmbralRaptor a molybdenum ignition-like scalar
<egg> !seen котя
<Qboid> egg: I haven't seen the user котя yet.
<UmbralRaptor> Surely it would be kotya, given the limited characters available for nicks?