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
<satacker[m]>
1. Is it correct to not pass any arguments to await_transform while invoking it?
<satacker[m]>
CC rori thanks
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 276 seconds]
K-ballo1 is now known as K-ballo
K-ballo has quit [Quit: K-ballo]
K-ballo has joined #ste||ar
hkaiser has joined #ste||ar
<K-ballo>
hkaiser: here now
<hkaiser>
K-ballo: hey
<hkaiser>
question about spirit x3
<hkaiser>
all the rules are global objects
<hkaiser>
I'm running into initialization sequencing issues with those. is there a known way to force initialization of those rules?
<K-ballo>
don't make them globals if at all possible
<hkaiser>
how can I do that? use local variables and reinitialize on every use?
<K-ballo>
if the cost of initialization is small you can just re-initialize everything each time by having it on the stack, and it's no different than what we used to do with q2
<hkaiser>
ok, I'll do that, thanks
<K-ballo>
if the initialization cost isn't small... something is off? :P
<hkaiser>
have not checked
<K-ballo>
with rules things can get pretty crazy really fast, but in x3 at least having custom parsers is trivial and the associated tags are constant initialized
<satacker[m]>
1. Is it correct to not pass any arguments to await_transform while invoking it?
<hkaiser>
satacker[m]: you tell me
<satacker[m]>
Incorrect
<hkaiser>
why does removing the variadic arguments 'solve' the issue?
<satacker[m]>
I don't think I forwarded it incorrectly
<hkaiser>
the old code looks ok to me
<hkaiser>
satacker[m]: I can have a closer look, if you like
<hkaiser>
satacker[m]: did clang give you more information?
<satacker[m]>
I was unsuccessful in using clang++-12 for compilation
<hkaiser>
uhh, why's that?
<satacker[m]>
Due to libc++
<satacker[m]>
ld couldn't find lc++
<hkaiser>
please talk to Alireza about that - this can be fixed
<hkaiser>
have you tried another version of clang?
<satacker[m]>
No
<hkaiser>
I have some spare time this afternoon, let me have a look
<satacker[m]>
Let me try once more, this issue shouldn't take more than today
<hkaiser>
as you wish
<hkaiser>
K-ballo: having rules (and their definitions) as local variables doesn't work as the SPIRIT_DEFINE() macro defines functions that need to have access to those
<K-ballo>
sure, but rules have no initialization cost
<K-ballo>
plus, you can even declare rules
<hkaiser>
the problem is that the functions need access to those and assume that the rules/their definitions are global
<hkaiser>
the BOOST_SPIRIT_DEFINE() macro defines functions that access the rule_xxx_def from global scope
<hkaiser>
there is no way to have those as local variables
<K-ballo>
I used to have the entire rule definition, along with all the autos, inside the rule definition
<hkaiser>
do you have an example?
<K-ballo>
unlikely, let's see
<K-ballo>
I may have some examples before the switch to adl maps, that wont help
<hkaiser>
yah, this has changed in spirit, so I would have to keep two versions around for older Boosts :/
<K-ballo>
what kind of initialization issue are you running into? some parser with complex state?
<hkaiser>
globals not being initialized yet
<K-ballo>
is it trying to parse pre-main?
<hkaiser>
long story: I'm trying to make HPX work with static linking. One of the examples initializes HPX from a global constructor. This triggers parsing, but those global rules are not initialized yet.
<K-ballo>
you can always switch from rules to custom parsers, custom parsers are easy in x3, but I wonder what other consequences it would have
<hkaiser>
nod
diehlpk_work has joined #ste||ar
Yorlik_ has quit [Read error: Connection reset by peer]
Yorlik has joined #ste||ar
K-ballo has quit [Read error: Connection reset by peer]
K-ballo has joined #ste||ar
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 240 seconds]
K-ballo1 is now known as K-ballo
diehlpk_work has quit [Remote host closed the connection]