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
K-ballo has quit [Quit: K-ballo]
hkaiser has quit [Quit: Bye!]
K-ballo has joined #ste||ar
hkaiser has joined #ste||ar
<jedi18[m]> hkaiser: gonidelis iter_move should be a CPO right? So I'll use tag_fallback CPO for it? https://eel.is/c++draft/iterator.cust.move
<jedi18[m]> I've added overloads for the 1.2.1 and 1.2.2 conditions but what do I do for the first one? https://eel.is/c++draft/iterator.cust.move#1.1
<hkaiser> jedi18[m]: hmmm
<jedi18[m]> I don't exactly understand the requirements for that
<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]> 3. Setup doxygen example+try doxyoda
<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