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
light7031 has joined #ste||ar
Yorlik_ has joined #ste||ar
Yorlik__ has quit [Ping timeout: 248 seconds]
hkaiser has quit [Quit: Bye!]
<satacker[m]>
<Arnav-Negi> "Who can I contact regarding..." <- You can discuss it right here if you have any example that's non-trivial.
matrixb01x has joined #ste||ar
<matrixb01x>
there is no hpx::chrono::duration_cast in hpx ,right ?
<matrixb01x>
i couldnt find it inn docs
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 255 seconds]
K-ballo1 is now known as K-ballo
matrixb01x has quit [Quit: Client closed]
matrixb01x has joined #ste||ar
matrixb01x has quit [Quit: Client closed]
Arnav-Negi has joined #ste||ar
Arnav-Negi has quit [Ping timeout: 260 seconds]
Arnav-Negi has joined #ste||ar
Arnav-Negi has quit [Client Quit]
light7031 has quit [Quit: Client closed]
Arnav-Negi has joined #ste||ar
<Arnav-Negi>
Hi I dont know if this is non trivial, but I wanted to know what S/R means in the asynchronous I/O project. I couldn't find it through searching online.
<Yorlik>
We need to fix our non header only header only library. I'm thinking of pimp for that. Do you have ideas what might be better / good alternatives?
<Yorlik>
PIMPL
<hkaiser>
Yorlik: do do what?
<hkaiser>
to do*
<Yorlik>
We made a wrong decision at start to make it heaqder only where we couldn't - our dependencies require global state (networking stuff)
<hkaiser>
you can turn any non-header code into header only
<Yorlik>
That's what I need to do with our part (the mistakes) but I need to fix the dependencies we can't change too.
<Yorlik>
Its a static library with global stuff in it
<Yorlik>
We made a wrapper for it.
<hkaiser>
so, please elaborate - I didn't get what you want
<K-ballo>
global state is bad, but it doesn't prevent header only
<Yorlik>
We made a wrapper around a static library that supplies us with reliable UDP based connection based messaging.
<Yorlik>
There are errors in our code, but that dependency also is an issue.
<hkaiser>
what issue?
<Yorlik>
Linking problems with double symbols
<Yorlik>
So we cannot really include our library in different TUs.
<hkaiser>
so functions/variables defined in headers that are included in more than one TU?
<Yorlik>
Yes
<hkaiser>
make the functions/variables inline
<hkaiser>
or separate the definition from the declarations, leaving the declarations in the header while moving the definitions into a source file
<Yorlik>
Won't inliniung or static trickery cause schiziphrenic splits amongst TUs?
<hkaiser>
that's the point of inline
<K-ballo>
inline tells the linker to deduplicate
<hkaiser>
well, one of the points
<K-ballo>
static tells the compiler to issue different symbols for each TU
<Yorlik>
I just don't want value go out of sync.
<hkaiser>
use inline, but better is to move the definition into a source file
<hkaiser>
header: extern int foo;, source: int foo = 0;
<Yorlik>
Allright. So no more header only, but clear separation of decl and def.
<hkaiser>
or use of inline
<Yorlik>
Allright. If I'm luck I might find a good line where I can separate the APIs in away to have a higher level header only part and a conventional lower part.
<Yorlik>
We thought about putting stuff in a library instance object, but the lower level static libary demands a single library instance.
<Yorlik>
Not that it was direly needed anyways.
<Yorlik>
Thanks for the input - time to get sleep ...
ct-clmsn has quit [Quit: This computer has gone to sleep]