Comments (6)
Oh goodness boost, that's a long type signature.
I'd side with just truncating the signatures as the YAML files do make it easier to look at the output manually if need be. To be 100% correct, yeah this would require either a change of the format s.t. the names aren't used directly and they're stored in another table, but I'm hesitant to go for that. I'm pretty sure one of the iterations used that approach (perhaps sfpv as I built tables to llvm::clang::someOtherNamespace::Function pointers rather than using the stringified names in parts of the code) and debugging issues with that was a giant pain.
from stoat.
In boost's defense, map<string, vector<string>>
alone is around 250 characters when fully spelled out. The function actually takes two of those, and each argument appears (only) twice in the type signature... :)
Does this look ok to you?
dsacre/stoat@de21782
I take it the shortened names only affect what would appear in the output/graph, and stoat uses mangled names for everything else?
from stoat.
That might be sufficient in practice as llvm does replace lengthy templated type names with shorter versions, but it might make sense to just limit some of the other printfs to this limit (when they're getting used as keys).
Shortened names should only show up in the graphviz renderings, though they're also used in pattern matching for the white/black lists. They can't be used at the YAML file level as collisions happen too easily.
from stoat.
Here's a more complete patch. Is this what you had in mind?
dsacre/stoat@e9b527a
from stoat.
Yeah that looks right. I'll try to merge that in this afternoon.
from stoat.
Merged. I've also added you to the contributor list on github, so you should have commit access as well. thanks 👍
from stoat.
Related Issues (20)
- Stoat fails to track virtual methods in multiple interitance cases involving templates HOT 2
- Graphviz generation error with 2.38.0 HOT 2
- More vtable Chasing HOT 1
- quick README glitch HOT 1
- Ingen Build Results In Unparsed Vtable Entries
- Add Line Numbers HOT 1
- Produce Errors in GCC Style To Make It More Parseable
- Add define when using stoat-compile
- Crash on Clang 4.0.0 (arch) HOT 2
- Error in suppressions mechanism HOT 2
- Functions with same name in multiple compilation targets do not increase counters HOT 3
- Error when trying to install on gentoo because of ldconfig invocation HOT 3
- build fails on macOS Sierra and homebrew LLVM HOT 6
- find_program needs to handle newer llvm versions
- Use trivial data-dependencies to ignore non-rt functions with trivial conditionals HOT 3
- RT-Safe classes based on non-rt safe ones ignore higher-level implementation HOT 2
- Ruby error in create_alias_map HOT 2
- Add type checks when loading the YAML from the LLVM pass
- LLVM Pass may be broken under LLVM 5.0.1 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stoat.