01:57
K-ballo has quit [Quit: K-ballo]
03:41
diehlpk_work_ has quit [Remote host closed the connection]
03:47
hkaiser has quit [Quit: bye]
07:22
bita has quit [Ping timeout: 260 seconds]
12:59
parsa has joined #ste||ar
13:00
parsa has quit [Client Quit]
13:01
parsa has joined #ste||ar
13:05
parsa has quit [Client Quit]
13:08
parsa has joined #ste||ar
13:10
parsa has quit [Client Quit]
13:11
K-ballo has joined #ste||ar
13:13
<
ms[m] >
K-ballo: probably no good reason
13:14
<
ms[m] >
only possible reason I can think of is that they're used by other inline functions in headers, but it's probably just a mistake
13:16
<
K-ballo >
they aren't, they are only being used from parse_affinity_sth.cpp
13:17
<
K-ballo >
it looks like it may have been a standalone thing in the past
13:19
parsa has joined #ste||ar
13:20
parsa has quit [Client Quit]
13:25
parsa has joined #ste||ar
13:29
parsa has quit [Client Quit]
13:30
parsa has joined #ste||ar
13:31
hkaiser has joined #ste||ar
14:00
parsa has joined #ste||ar
14:36
henrietaMag has joined #ste||ar
15:30
<
K-ballo >
min/max are never actually used, they are always defaulted
16:04
<
hkaiser >
K-ballo: hmmm, I thought the parser would allow for specifying a list of entities
16:05
<
hkaiser >
-c3,4 or somesuch
16:10
<
K-ballo >
is that supposed to result in the min and max params being set?
16:10
<
hkaiser >
good question
16:12
<
K-ballo >
it mentions max_entities, which is min/max's defaulted value
16:13
<
hkaiser >
you mean all_entities()?
16:13
<
K-ballo >
*all_entities
16:15
<
hkaiser >
I don't remember the details, the idea was to be able express single entities, lists of entities and ranges of those
16:16
<
hkaiser >
ranges are stored as {min,-max} where -max != all_entities()
16:18
<
K-ballo >
yeah, the constructor only seems to be used as default or type conversion, never min/max
16:19
<
hkaiser >
K-ballo: true
16:19
<
hkaiser >
so it's a leftover from something else :/
17:08
<
gnikunj[m] >
clang-format is such a life saver. It seems like I was living under the rock all this time trying to format my file myself!
17:30
<
gonidelis[m] >
gnikunj[m] not so great with template programming though ;p
17:32
<
hkaiser >
gonidelis[m]: we have mostly good experiences
17:33
<
hkaiser >
it's not perfect, but good enough
17:51
<
gonidelis[m] >
i once contributes to a paper about coding readability btw ;p
17:51
<
gonidelis[m] >
hkaiser: sure. I don't mean to undermine its work. My code for sure would be a lot shittier without it
18:11
<
gnikunj[m] >
gonidelis[m]: strange. Probably I didn't use any advanced template programming then :P
18:12
<
gonidelis[m] >
gnikunj[m]: I will feel cheated if you tell me that your long arguments inside the angle brackets `<>`, are properly alligned
18:12
diehlpk_work has joined #ste||ar
18:13
<
gnikunj[m] >
gonidelis[m]: Aah that is not well aligned sadly :/
18:44
<
hkaiser >
gonidelis[m]: that's what we decided to go with
18:44
<
gonidelis[m] >
yy I am not comlaining at all
18:44
<
gonidelis[m] >
just fooling with my friend nikunj
18:44
<
hkaiser >
we went with the clang-format options as close as possible to what we've been doing before
18:48
<
gnikunj[m] >
gonidelis[m]: :D
18:49
<
gnikunj[m] >
hkaiser: and I must say that that clang-format file is such a boon to work with as well!
20:53
<
K-ballo >
the benefit of auto formatting is not in beauty, but in that you no longer have to (nor should) care about it
20:54
<
gonidelis[m] >
fair
21:00
<
gonidelis[m] >
hkaiser: I have added the iterator wrapper on local - segmented iterators, we were talking about at a past meeting
21:00
<
gonidelis[m] >
although the same error remains and it keeps deriving from the very same line
21:02
<
gonidelis[m] >
it's all about this call
21:06
<
K-ballo >
is this the one that was trying to do the conversion backwards?
21:07
<
K-ballo >
what was the specialization that caused it?
21:09
<
gonidelis[m] >
i could show you the test-call i am making in order to produce the error, but is it cogent for clang not to trace it completely?
21:09
<
gonidelis[m] >
K-ballo:
21:10
<
K-ballo >
no, I pointed out one concrete specialization that was (directly or indirectly) bogus
21:10
<
K-ballo >
something is causing those raw iterators to be converted to remove earlier than they should
21:10
<
K-ballo >
code later on still expects raw iterators, and tries to convert them back
21:12
<
gonidelis[m] >
2. "to be converted to remove"?
21:13
<
gonidelis[m] >
K-ballo: ^^
21:13
<
K-ballo >
no, it was after that fix was in place that it was clear the conversion was backwards
21:16
<
gonidelis[m] >
the specialization is the one that includes this call
21:16
<
gonidelis[m] >
where the error pops in
21:16
<
K-ballo >
is that the one I pointed out?
21:16
<
gonidelis[m] >
when did you point out?
21:17
<
K-ballo >
a week ago? maybe two? when we were discussing the issue
21:17
<
K-ballo >
right after the conversion fix
21:18
<
K-ballo >
I don't see it there, no, where?
21:19
<
gonidelis[m] >
it must have been the next day
21:20
<
gonidelis[m] >
this must be it
21:20
<
gonidelis[m] >
yy exactly
21:23
<
gonidelis[m] >
so you are talking about the `static_assert` debugging thing?
21:25
<
K-ballo >
I don't know, I don't think so.. wasn't that earlier?
21:25
<
K-ballo >
the static_assert tracing thing didn't kick, which is what made evident that the conversion was going backwards
21:28
<
gonidelis[m] >
ok the error is pretty clear I think
21:28
<
gonidelis[m] >
`hpx::local_vector_iterator<int, std::vector<int, std::allocator<int> > >` cannot be converted to `typename traits1::local_raw_iterator`, right?
21:29
<
gonidelis[m] >
and the conversion should be talking place here
21:29
<
gonidelis[m] >
right?
21:29
<
K-ballo >
the error is that your local_raw_iterators were converted into local_vector_iterators too early
21:30
<
gonidelis[m] >
i suppose you have no clue what a local_raw_iter is...
21:30
<
K-ballo >
does it matter?
21:30
<
gonidelis[m] >
thanks you. that's what i expected
21:30
<
gonidelis[m] >
ok i may suspect sth. give me a sec
21:30
<
K-ballo >
your function expects X but you are passing it Y, because you already converted your Xs into Ys
21:34
<
gonidelis[m] >
that's the initial code (that was compiling fine supposedly)
21:34
<
gonidelis[m] >
and that's my change
21:35
<
gonidelis[m] >
So these things are
**already** `local_iter`s
21:35
<
gonidelis[m] >
how do you know that the error is due to early conversion?
21:36
<
K-ballo >
no, that's not it
21:36
<
gonidelis[m] >
what? why?
21:36
<
K-ballo >
why do you think that's it?
21:37
<
gonidelis[m] >
why do i think what? I am just pointing out the place where "these things" become local_iters
21:37
<
K-ballo >
btw these variables that only hold a result, they should use inference
21:37
<
K-ballo >
no, that's later on, the problem happens before dispatch can return
21:45
<
gonidelis[m] >
but I do call them as `local_iters` in the first place
21:45
<
gonidelis[m] >
K-ballo: ?
21:46
<
K-ballo >
those are inputs, not outputs
21:46
<
gonidelis[m] >
and you suggest that they are converted to `raw` at some point and then again back to `local` (but too early)
21:46
<
K-ballo >
no, other way around
21:46
<
K-ballo >
the output is raw, dispatch expects to convert raws to local, but somehow it receives already converted locals
21:47
<
K-ballo >
or if by "they" you meant the inputs? those are irrelevant
21:48
<
gonidelis[m] >
the inputs lead to the outputs
21:48
<
K-ballo >
the type of the inputs is just fine
21:48
<
gonidelis[m] >
ok ok
21:48
<
gonidelis[m] >
i get it
21:48
<
K-ballo >
the algorithm is supposed to produce raws, but somewhere in the way to dispatch (which is responsible for converting those to local) they get converted early
21:49
<
gonidelis[m] >
it seems that i should be fine till this end of the trace
21:49
<
gonidelis[m] >
these ARE `raw`
21:50
<
K-ballo >
you don't get to that call, do you? isn't that the one I flagged?
21:50
<
gonidelis[m] >
hmmmmmm
21:50
<
gonidelis[m] >
you are right
21:52
<
gonidelis[m] >
it is explicitly stated here that it wants `local`s
21:53
<
K-ballo >
inputs should be local
21:54
<
gonidelis[m] >
could the case may be that you do know what's wrong but you are just letting me fight with the beast just to gain the XP?
21:55
<
K-ballo >
not really, but I would if I tried to compile the code
21:55
<
gonidelis[m] >
i gave you the full error though
21:56
<
K-ballo >
yeah, so?
21:56
<
gonidelis[m] >
do you expect your compilation do be different?
21:56
<
gonidelis[m] >
you said you would know the source in case you compiled it
21:56
<
K-ballo >
you mean the output? nah
21:58
<
gonidelis[m] >
ok here is a good question: why is `dispatcher_helper` popping up in the first place. I can find anyone anywhere calling it
21:58
<
gonidelis[m] >
it's just `dispatcher` calling `base_dispatcher::sequential`
21:59
<
K-ballo >
dispatcher uses dispatcher_helper
22:00
<
gonidelis[m] >
shit
22:00
<
gonidelis[m] >
just saw it
22:01
<
gonidelis[m] >
so I should search before the `dispatcher_helper`1 instantiation
22:02
<
gonidelis[m] >
the thing is I have not touched the code before that. and I have not touched the code after the `out = dispatch()` main call
22:02
<
K-ballo >
the code before and after out = dispatch() is irrelevant
22:02
<
gonidelis[m] >
yet you suggest that the problem is somewhere in between
22:02
<
K-ballo >
it's somewhere inside the dispatch() call itself that something goes wrong
22:02
<
gonidelis[m] >
i am not talking about lines
22:02
<
gonidelis[m] >
i mean the execution sequence
22:03
<
K-ballo >
the execution sequence is not before nor after that line either
22:03
<
gonidelis[m] >
"it's somewhere inside the dispatch() call itself that something goes wrong"
22:04
<
gonidelis[m] >
but you said the inputs are fine
22:04
<
gonidelis[m] >
do you mean inside the `dispatch()` implementation?
22:06
<
gonidelis[m] >
no one touched that either
22:26
<
gonidelis[m] >
btw the same error pops here
22:26
<
gonidelis[m] >
so there is a case where execution sequence passes through the `algo.call()`
22:28
<
K-ballo >
anything after the first TU error message you should ignore in general
22:29
<
gonidelis[m] >
when I can't find anything about the first tu being wrong though....
22:30
<
K-ballo >
anything after the first error message is based on the compiler guesses and assumptions of what you actually meant
22:30
<
gonidelis[m] >
i just can't see the `raw` popping up anywhere before that and i don't know why it is converted earlier
22:30
<
K-ballo >
and in general the compiler isn't very good at guessing with these templated scenarios
22:36
<
gonidelis[m] >
Could my `in_in_out_resul` impl cause the error?
22:37
<
K-ballo >
highly unlikely, but anything's possible
22:37
<
hkaiser >
gonidelis[m]: how can I reproduce this?
22:37
<
gonidelis[m] >
my branch is updated
22:37
<
gonidelis[m] >
if you compile with clang
22:38
<
gonidelis[m] >
`make -j tests.unit.modules.segmented_algorithms.partitioned_vector_transform_binary1`
22:40
<
gonidelis[m] >
sorry: `make -j tests.unit.modules.segmented_algorithms.partitioned_vector_transform_binary` will do. `1` is redundant
22:40
<
gonidelis[m] >
it's the same anyways
22:41
<
hkaiser >
gonidelis[m]: is that the PR?
22:42
<
gonidelis[m] >
it's the `adapt_transform`branch
23:10
<
gonidelis[m] >
hkaiser: any luck>
23:12
<
hkaiser >
not yet, give me some time, pls
23:12
<
hkaiser >
need to set things up first
23:12
<
gonidelis[m] >
no prob
23:41
<
hkaiser >
gonidelis[m]: ok, got it reproduced now, sorry it took so long
23:52
<
gonidelis[m] >
Plz don't apologize