hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar-group.org | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | This channel is logged: irclog.cct.lsu.edu
diehlpk has joined #ste||ar
diehlpk has quit [Quit: Leaving.]
diehlpk has joined #ste||ar
diehlpk has quit [Quit: Leaving.]
diehlpk has joined #ste||ar
K-ballo has quit [Quit: K-ballo]
diehlpk has quit [Quit: Leaving.]
diehlpk has joined #ste||ar
diehlpk has quit [Quit: Leaving.]
hkaiser has quit [Quit: Bye!]
Yorlik has joined #ste||ar
Yorlik has quit [Read error: Connection reset by peer]
Yorlik has joined #ste||ar
Yorlik has quit [Ping timeout: 258 seconds]
Yorlik has joined #ste||ar
Yorlik has quit [Ping timeout: 260 seconds]
Yorlik has joined #ste||ar
K-ballo has joined #ste||ar
hkaiser has joined #ste||ar
<Yorlik> Hello hkaiser: YT?
<hkaiser> here
<Yorlik> I would appreciate if you at some time have a moment in voice for some basic database questions / design issues.
<hkaiser> I have a very full day today :/
<Yorlik> Anytime - could be some day. Basically I am entering the territory of a distributed database. Currently studying the Anna paper (https://dsf.berkeley.edu/jmh/papers/anna_ieee18.pdf) I'm getting ideas and questions concerning our use cases.
<hkaiser> Yorlik: ok, let's plan for something closer to the weekend
<Yorlik> Allright. I'll be around. :)
<Yorlik> Or should we make a date?
<hkaiser> Friday afternoon (my time)?
<Yorlik> That would work.
<Yorlik> What hour would that be in UTC?
<hkaiser> 1pm CDT == 6pm UTC
<Yorlik> That's great.
<hkaiser> Yorlik: Firday 1pm CDT, https://lsu.zoom.us/j/3340410194
<Yorlik> That's 8 p.m. my time - perfect: Thanks! Zoom link taken :)
<hkaiser> +1
diehlpk has joined #ste||ar
diehlpk has quit [Quit: Leaving.]
Yorlik has quit [Ping timeout: 260 seconds]
diehlpk has joined #ste||ar
<gonidelis[m]> K-ballo: how does a `reinterpret_cast` from a `char** x[0]` to a `std::pair<long, long> *` work?
<gonidelis[m]> i meant `char ** x;` and then `x[0];` of course
<hkaiser> uhh, that doesn't look right
<hkaiser> you can't just cast unrelated types
<gonidelis[m]> its a `char *` to `std::pair<long, long> *`
<K-ballo> reinterpret_cast from T cv* to U* is just static_cast<U*>(static_cast<void cv*>(ptr))
<K-ballo> it's only meaningful if the pointer originally pointed to a U, and there's a common layout alignment between types
<K-ballo> the value itself is entirely implementation dependent
diehlpk_work has joined #ste||ar
<gonidelis[m]> hkaiser: pm
<gonidelis[m]> K-ballo: yeah right
<gonidelis[m]> so they need to take care of that
<gonidelis[m]> but how does the std::memory<long, long> split the memory of the char* ?
<gonidelis[m]> in two ^^
<gonidelis[m]> K-ballo:
Yorlik has joined #ste||ar
<K-ballo> take care of what? and.. split??
<K-ballo> it's a cast from `T*` to `U*`, not from `T*` to `std::pair<X, Y>`
<gonidelis[m]> std::paor<x,y> *
<gonidelis[m]> ahhhhhhh
<gonidelis[m]> it hurts
<gonidelis[m]> seriously?
<K-ballo> ?
<gonidelis[m]> who can be crazy enough to come up with this
<gonidelis[m]> converting a char pointer to a std::pair pointer
<gonidelis[m]> pointer to ^^ ^^
diehlpk has quit [Quit: Leaving.]
diehlpk has joined #ste||ar
<K-ballo> someone that had first converted a std::pair pointer to a char pointer, presumably
<K-ballo> since the round-trip from T* to U* to T* again is about the only thing reinterpret_cast defines semantics for
<K-ballo> just a form of type erasure
<gonidelis[m]> what if they had converted std::vector pointer to a char pointer?
<K-ballo> converting std::vectr pointer to a char pointer is perfectly fine
<K-ballo> char is a "byte type", has alignment 1, it's compatible with all the other types
<K-ballo> plus it's exempted from type-based alias analysis
diehlpk has quit [Ping timeout: 264 seconds]
<gonidelis[m]> so the sequence std::vector<char *> x -> char ** x-> x[0] -> std::pair<long,long> * y is fine?
<gonidelis[m]> K-ballo:
<K-ballo> no
<K-ballo> and neither is for std::vector<char>* x
<K-ballo> actually, if the types have compatible alignment the sequence itself it's fine, it's when you dereference that it becomes a problem
<gonidelis[m]> is y[2].first that kind of a problematic dereferce? K-ballo
<K-ballo> `y[2]` is effectively `*(y + 2)`, yes
<gonidelis[m]> so they need to take care for *(y+2) not to be messy
<gonidelis[m]> well they actually don't convert the vector<char*> to char **
<gonidelis[m]> they rarther conver the vector.data() to char **
<K-ballo> take care of what?
<gonidelis[m]> the alignment
<K-ballo> `vector<char*>::data()` is already `char**`
diehlpk has joined #ste||ar
<K-ballo> `char` has the weakest alignment, it's compatible with all other types
<gonidelis[m]> weakest alignment just because it allocates less bytes
<K-ballo> no
diehlpk_work has quit [Ping timeout: 245 seconds]
diehlpk_work has joined #ste||ar
diehlpk has quit [Quit: Leaving.]
ctaylor has joined #ste||ar
ctaylor has quit [Client Quit]
ctaylor has joined #ste||ar
hkaiser has quit [Quit: Bye!]
K-ballo has quit [Quit: K-ballo]
K-ballo has joined #ste||ar
Yorlik has quit [Ping timeout: 260 seconds]