On Tuesday, 7 October 2014 at 21:59:08 UTC, Peter Alexander wrote:
On Tuesday, 7 October 2014 at 20:13:32 UTC, Jacob Carlborg
wrote:
I didn't look at any source code to see what "new" is actually
allocating, for example.
I did some random sampling, and it's 90% exceptions, with the
occasional array allocation.
That's interesting. I suspected around 50%. Well that's even
better since if we do ref-counted exceptions we solve 90% of
problem ;)
I noticed that a lot of the ~ and ~= complaints are in code
that only ever runs at compile time (generating strings for
mixin). I wonder if there's any way we can silence these false
positives.
I'm going to use blacklist for these as compiler can't in general
know if it is going to be used exclusively at CTFE or not.
Okay, I think I should go a bit futher with the second version
of the tool.
Things on todo list:
- make tool general enough to work for any GitHub based project
(and hackable for other hostings)
- use Brian's D parser to accurately find artifacts
- detect "throw new SomeStuff" pattern and automatically
populate potential fix line
- list all source links in one coulmn for the same function
(this needs proper parser)
- use blacklist of <module-name>:<artifact name> to filter out
CTFE
- use current data from wiki for "potential fix" column if
present
Holy grail is:
- plot DOT call-graph of GC-users, with leafs being the ones
reported by -vgc. So I start with this list then add functions
them, then functions that use these functions and so on.