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 | Everybody: please respond to the documentation survey: https://forms.gle/aCpNkhjSfW55isXGA
<hkaiser>
I'm not sure if it's worth for us to implement it as a cpo as we will use it in a very defined context only
<hkaiser>
I'm not sure if we should intend to give the user a way to customize it
<hkaiser>
so having a simple implementation that does 1.2.1 and 1.2.2 is probably fine (two straight overloads)
<hkaiser>
jedi18[m]: but let's ask K-ballo, he is the authority on these things here
<jedi18[m]>
Oh ok, but I still don't see how iter_swap solves the vector<bool> thing you explained the other day? I thought 1.1 had something to do with that?
<jedi18[m]>
Ok sure
<hkaiser>
it does it by forcing the proxy to be converted to the underlying value
<K-ballo>
I don't remember an iter_move in HPX
<K-ballo>
wouldn't make a lot of sense pre ranges either
<hkaiser>
K-ballo: some context: jedi18[m] tries to implement a ranges::iter_swap to be used for the algorithms for pre c++20 environments (to support anges v3, for instance)
<hkaiser>
.. and to handle proxy iterators
<K-ballo>
ranges::iter_swap is actually a real CPO
<K-ballo>
it's meant for iterator types to customize it
<hkaiser>
yes, but do we need it to be one for our purposes
<K-ballo>
what are "our purposes"?
<K-ballo>
if it isn't a CPO, it's entirely redundant
<hkaiser>
ok
<hkaiser>
then I misunderstood things
<hkaiser>
it will not make sense to implement a cpo just for hpx 'replacing' c++20 iter_swap
<hkaiser>
as customizations people provide for our iter_swap would not work for the c++20 one
<rachitt_shah[m]>
Hey everyone, agenda for tomorrow's tasks :
<rachitt_shah[m]>
2. Propose a 2 week plan for progress
<rachitt_shah[m]>
1. Wind up build instructions PR.
<jedi18[m]>
Ok so we don't implement iter_swap? Add a feature test to check if ranges::iter_swap is supported and then use it if it is, otherwise use the normal iter_swap?
<hkaiser>
jedi18[m]: I guess the only thing we can do is to use ranges::iter_swap if available and fall back to using std::iter_swap otherwise
<hkaiser>
exactly
<K-ballo>
sounds about right
<jedi18[m]>
Oh ok cool, thanks!
<gnikunj[m]>
rachitt_shah: nice!
<hkaiser>
rachitt_shah[m]: thanks
<hkaiser>
gnikunj[m]: btw, the asan issue is still not solved :/
<rachitt_shah[m]>
Will share the 2 week plan, first thing tomorrow
<hkaiser>
+1
<gnikunj[m]>
hkaiser: Damn, where is it popping up this time?
<hkaiser>
same place
<hkaiser>
I only assumed to have had it fixed
<gnikunj[m]>
:/
<gnikunj[m]>
you want me to try and reproduce it again?
<hkaiser>
gnikunj[m]: would be nice to be able to narrow it down
<gnikunj[m]>
hkaiser: right. Let me try reproducing it then. I'll let you know if I find something.
<hkaiser>
so far I can't really make heads or tails of it :/
<hkaiser>
thanks
<gnikunj[m]>
hkaiser: just found out that Keita's code has a race :facepalm:
<gnikunj[m]>
btw I was able to generate replicate resilient
<hkaiser>
nice
<gonidelis[m]>
K-ballo why is it redundant of its not a cpo?? We use it for different type of iterators swap. That by itself makes it non redundant.
<gonidelis[m]>
If^^
<hkaiser>
gonidelis[m]: the iter_swap in the standard is a cpo
<hkaiser>
so that iterators can customize it for their specifics (e.g. handling the proxies)
<hkaiser>
if it's not a cpo this can't be achieved
<K-ballo>
you can customize std::iter_swap, but the standard library can just do a traditional std::swap instead, it doesn't ever need to call it