K-ballo changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar.cct.lsu.edu | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | Buildbot: http://rostam.cct.lsu.edu/ | Log: http://irclog.cct.lsu.edu/
shahrzad has quit [Ping timeout: 264 seconds]
akheir has quit [Quit: Leaving]
hkaiser has quit [Quit: bye]
alexandros[m] has quit [Quit: Idle for 30+ days]
hkaiser has joined #ste||ar
shahrzad has joined #ste||ar
shahrzad has quit [Ping timeout: 264 seconds]
hkaiser has quit [Quit: bye]
shahrzad has joined #ste||ar
shahrzad has quit [Quit: Leaving]
<gonidelis[m]> if i call this `transform(policy, vector1, std::begin(vector2), std::begin(dvector1), add)` which one of these overloads is called http://eel.is/c++draft/alg.transform ?
<K-ballo> is there adl?
<gonidelis[m]> yes?
<K-ballo> are you asking or telling
<gonidelis[m]> telling
<K-ballo> there's no anser then
<gonidelis[m]> what if there isn't?
<K-ballo> then it's a broken call
<gonidelis[m]> what is a broken call?
<K-ballo> the one you specified
<gonidelis[m]> yeah I mean what does a broken call mean?
<K-ballo> a programmer bug, since it's meant to call one of those std functions but isn't viable
<gonidelis[m]> ok cool
<gonidelis[m]> thanks
<K-ballo> what prompted the question?
<gonidelis[m]> and I don't know how to reform the calls in order to be meaningful for the adapted `transform`
<K-ballo> hpx has a different overload set than std
<gonidelis[m]> what
<gonidelis[m]> ?
<K-ballo> hpx offers overloads than std doesn't
<K-ballo> the question from above would be different if asked for hpx instead of those overloads linked
<gonidelis[m]> hmm ok
<gonidelis[m]> since I am adapting to c++20 std though...
<gonidelis[m]> let me give you my overloads
<gonidelis[m]> there are these ones
<gonidelis[m]> and...
<gonidelis[m]> these ones
<K-ballo> I think a more relevant question for hpx would be what is that call supposed to do
<gonidelis[m]> ok ans what's the answer to that?
<K-ballo> looks like a parallel binary transform, but it mixes ranges and iterators in an odd way.. can't really tell, where does it come from?
<gonidelis[m]> the test I sent you above
<K-ballo> no, it wasn't there
<gonidelis[m]> isn't that it?
<K-ballo> maybe? I had looked for `transform(policy, vector1, std::begin(vector2), std::begin(dvector1), add)`
<gonidelis[m]> yeah I changes so you wouldn't ask me what c1 c2 and d1 are
<gonidelis[m]> changed them*
<K-ballo> looks like a misguided old range attempt, can't say for sure.. needs hkaiser
<gonidelis[m]> did he log in at all today?
<gonidelis[m]> i will just convert `std::begin(c2)` to `c2` for now
<gonidelis[m]> which conforms to standard
<K-ballo> isn't there another test for c1, c2 already?
<gonidelis[m]> I 'll check
<gonidelis[m]> ahhh yeah there is
<gonidelis[m]> `transform_range_binary2`
<gonidelis[m]> hmm what should i do...
<K-ballo> ignore for now and come back once hkaiser weighs in
<K-ballo> I can imagine how we got here, "range-ifying" the three-legged transform
<K-ballo> there's _only_ a three-legged transform, ok that explains it even more
<gonidelis[m]> three legged means like rng, rng, iterator ?
<K-ballo> first1, end1, first2
<K-ballo> where end2 = first2 + (end1 - first1)
<gonidelis[m]> if first1, end1 was wrapped as `range`
<gonidelis[m]> would it be three legged then?
<K-ballo> that's how it'd be done, yep
<K-ballo> even if I'm not sure I agree with the result, we need to continue to support it now, at least for the near future
<K-ballo> so we'll end up with the whole gamut.. it's gonna be ugly
<gonidelis[m]> what do you mean?
<gonidelis[m]> like we are going to end up with all the possible combinations
<gonidelis[m]> ?
<K-ballo> i1, e1
<K-ballo> i1, e1, i2,
<K-ballo> r1, r2
<K-ballo> i1, e1, i2, e2
<K-ballo> r1, i2
<K-ballo> ...nasty...
<K-ballo> missed r1 too
<gonidelis[m]> what about the user though? ;p
<gonidelis[m]> they all end up in three basic `transform` implementations anyway
<gonidelis[m]> why not give them the whole interface?
<K-ballo> ..what is the whole interface?
<gonidelis[m]> all the possible combinations
<K-ballo> how is that not what I described above?
<gonidelis[m]> I though that you were not a fan of what you decribed above
<K-ballo> I'm most definitely not
<K-ballo> but that's what we have to do
<gonidelis[m]> why are you not a fan then??
<K-ballo> ideally we can deprecate the range + iter one and eventually removed, but still
<K-ballo> adding overloads to a template interface is user hostile
<K-ballo> harder to understand, much costlier to implement, terrible terrible error messages when things fail (compounded by the number of overloads)
<gonidelis[m]> let's put up a proposal then
<gonidelis[m]> ;p
<gonidelis[m]> no?
<K-ballo> ?
<K-ballo> to not overload unary and binary transform? about 26 years too late
<K-ballo> the range ones and the non-range ones are in different namespaces, so that helps
<K-ballo> and transform didn't get a "full-legged" version when the rest of the algorithms did because of it, so it's not news
<gonidelis[m]> have you made any proposal for the std committee btw?
<gonidelis[m]> ever*
<K-ballo> yes, a few
<gonidelis[m]> how many accepts?
<K-ballo> uhm.. 2? 3? 4?
<K-ballo> at least 3
<K-ballo> 4
<gonidelis[m]> awesome
<gonidelis[m]> is it difficult? actually I am sure it is. the question is how much?
<K-ballo> I wouldn't say "difficult", it's just a lot of work and then some
<gonidelis[m]> but you are like puting your signature in the language
<gonidelis[m]> putting*
<K-ballo> not really.. very few proposals are that significant
<gonidelis[m]> isn't it like when someone writes C++ you could say to them "well I have dictated some of the parts that you are able to write" ;p
<gonidelis[m]> ?
<K-ballo> a drop in the ocean
<gonidelis[m]> sure
<gonidelis[m]> but it's something
<K-ballo> if someone writing C++ happens to step on that particular drop I may say so, yeah
<gonidelis[m]> haha...
<gonidelis[m]> I was just kidding
<gonidelis[m]> pushing things on c++ is a great achievement on its one, small or big
<K-ballo> yes, but not really
<K-ballo> the big things, the things with design and so on, sure
<K-ballo> the rest of the staff, anyone willing to put the so many hours it takes could get it done
<gonidelis[m]> why does it take so many hours?
<K-ballo> one pushes for a topic, then everyone else interested in it chimes in, helps, etc..
<K-ballo> being thorough does
<gonidelis[m]> i can't wait for my moment to come...
<K-ballo> s/staff/stuff
<gonidelis[m]> ?
hkaiser has joined #ste||ar
<gonidelis[m]> hkaiser: hey
<hkaiser> hey gonidelis[m]
<gonidelis[m]> hkaiser: how are things?
<hkaiser> gonidelis[m]: I'm fine, thanks
<gonidelis[m]> well I had this conversation with augustin
<gonidelis[m]> about this test
<gonidelis[m]> which does not seem to match with any of our overloads
<gonidelis[m]> and I was wondering what I should do with that
<hkaiser> hmmm
<hkaiser> we should end up with a compatible set of overloads
<gonidelis[m]> you mean for the tests?
<gonidelis[m]> i have created all the overloads with `tag_invoke` on the PR I am working on
<hkaiser> that doesn't mean it's all as it should be
<gonidelis[m]> so the best option is to find whether all overloads are being tested and if not then convert that test to test a previously untested overload?
<gonidelis[m]> right?
<hkaiser> ok
<gonidelis[m]> Cool you can review when I push the PR then
<gonidelis[m]> Review it*
<hkaiser> will do, thanks!
bita has joined #ste||ar