-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
554 demangler parsing fixes for tracing #578
Conversation
141f1bd
to
d713b20
Compare
return &proxyOperatorToNewInstanceReg<ObjType, Args...>; | ||
} | ||
|
||
static std::string traceGetEventType() { |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
static std::string traceGetEventName() { | ||
using TE = vt::util::demangle::TemplateExtract; | ||
using DU = vt::util::demangle::DemanglerUtils; | ||
//auto args = DU::join(",", TE::getTypeNames<Args...>()); |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
} | ||
|
||
static size_t getNumArgs() { | ||
return 0; // lies - see NumArgsTag, perhaps |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is used/relevant for these types? :-/
} | ||
|
||
template <typename ActFnT, typename RegT, typename InfoT, typename FnT> | ||
template <typename RunnableT, typename RegT, typename InfoT, typename FnT> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Runnable-needs-Adapter (RunnableT::AdapterType), both are separate template types.
auto operator()(A&&... a) -> decltype(auto) { | ||
return f(std::forward<A>(a)...); | ||
} | ||
static std::string traceGetEventType() { |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
/// - FunctionPtrType | ||
/// - ObjType | ||
/// - getFunction | ||
/// - traceGetEventType |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
This comment has been minimized.
This comment has been minimized.
d713b20
to
9051b87
Compare
This comment has been minimized.
This comment has been minimized.
@lifflander This is ready to go. I would merge this as it also includes the #575 issues and fixes SEGV's that occur in several examples (including 'reduce). Only one test fails locally, and I believe that to be a test consistency issue (sometimes is it transpose_4, transpose_8, or both).
For reference, prior..
|
0e8f927
to
05d527b
Compare
@lifflander Back-merged in 575. |
abfc472
to
a66f4c8
Compare
a66f4c8
to
137d0a4
Compare
I just rebased this on latest develop and changed the target.
@pnstickne Can you fix this warning? I'm not sure if there is actually a bug here or if this just needs to be removed? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great and I'm ready to merge this once the warning is resolved.
Warning should be gone (it was a minor bug for an edge-case that is 'never expected to be reached' as it would require empty input after removing |
901e76f
to
bf5f33a
Compare
Super super recommend. It also means that I can run tests with tracing mode enabled 💃 |
@lifflander |
- Push concerns outward so that each implemnentation can correctly sort out what it needs to do. (Previously some auto-reg that supplied a functor could bypass any internal wrappers making for split paths.) Also makes code a WEEEE bit easier to follow.
- Now that extensibility points have been pushed down, most of the special parsing code can be entirely eliminated. There only needs to remain some minimal support. It MAY also be possible to use type_id in SOME cases; however, the capture of the VALUE is probably not possible outside of __PRETTY_FUNCTION__ magic..
- Using the new contracts and extractors, wire in!
- Should now mostly parity the initial (and SEGV-happy) implementation that did lots of magical parsing.. ..only "a small bit" of string magic is done with the new impl. - Added some template 'overloads' as GCC was having a hard time (as in, not being able to and raising errors) the template values for TemplateA<T,T*> calling TemplateB<T,T>.
- Ensuring names are consistent to intent/usage
- Compiles in clang.. note the awesome "1 arg" case to avoid a clang COMPILER CRASH. Pretty awesome!?!
- Using NumArgsType instead of size_t, as per.. what should have been done. - Also removed some spurious spaces returned to make results more consistent overall.
- Simple recursive iterator to deal better with template parameters involved in various types.
- Doesn't crash Clang - Doesn't require recursive templates - Not sure why this is not mentioned more online..
- Seriously, I aready wrote and lost a commit message.
- Call to 'getFunction' is done directly on AdapterType - Removed '&' and specified type for simplicity/clarity (oops! force update with correction.. go compilation flags)
- While this case should 'never' be hit, it did lead to a valid compiler warning due to the unsigned nature of size_t.
bf5f33a
to
4ab57d5
Compare
Basic idea of unification and pushing out responsibilities. Still need to wire in the arguments.
Drafted to 554 as a pre-req.
Fixes #554