>
> This is a valid concern but since the tool remains under active
> development, I would caution against making an assessment based on the
> number of issues currently reported in the tracker.
>

Fair point! I'll reserve judgement in that case then.

On Wed, Dec 30, 2020 at 9:57 PM K. Alex Mills <k.alex.mi...@gmail.com>
wrote:

> On Wed, Dec 30, 2020, 10:34 PM Tyler Compton <xavi...@gmail.com> wrote:
>
>> This is a very interesting project! I went ahead and labeled a few of the
>> issues. However, much as I hate to pour cold water on the idea, I have some
>> doubts about how effective this approach can be. The githubvet bot has
>> reported over ten thousand issues so far, which is quite a lot.
>>
>
> This is a valid concern but since the tool remains under active
> development, I would caution against making an assessment based on the
> number of issues currently reported in the tracker.
>
> Part of the problem is that the current tracker contains issues from
> multiple runs, since I've rescanned during testing, as I find and fixing
> issues.
>
> There are still some things that can be done to bring down the
> false-positive rate, but before addressing that I need to spend time on
> some of the false-negatives that I am currently aware of.
>
> My gut feeling is that if code does exist that correctly relies on the
>> current behavior, it would be extremely subtle. If we're going to get
>> through all of these issues, we won't be able to give each example a
>> complete deep dive which I think means we'll likely miss very subtle cases.
>> Not that I have any better ideas :)
>>
>
> Part of the hope has been that a large number of community participants
> would help parallelize the effort and (perhaps) even get multiple pairs of
> eyes on each issue. Whether that will work or not remains to be seen.
>
> I will also say that many of the issues I have looked at have seemed to be
> classifiable rather quickly. OTOH, that could also be an indication that
> the false-positive rate remains a little high.
>
> All that said, so far, the issues reported only focus on race-conditions
> or incorrectly storing a reference to a range-loop pointer. Tim King has
> just pointed out a few other concerns like pointer comparison and
> finalizers for which analyzers have yet to be written. My perception is
> that these two features aren't very widely used, so I wouldn't expect to
> find a large number of instances like these.
>
>
>> On Sun, Dec 20, 2020 at 12:38 PM K. Alex Mills <k.alex.mi...@gmail.com>
>> wrote:
>>
>>> Hello Gophers!
>>>
>>> During a Q&A session at this year's GopherCon, some members of the Go
>>> language team indicated a willingness to modify the behavior of range
>>> loops <https://github.com/golang/go/issues/20733> *if* we can be
>>> reasonably certain that the change will not cause incorrect behavior in
>>> current programs. To make that determination, a large collection of
>>> real-world go programs would need to be vetted. If we can find that, in
>>> every case, modifying the compiler behavior does not lead to an undesirable
>>> outcome, we will have strong evidence that the change may only have a small
>>> impact.
>>>
>>> I've been working on a project to gather and crowdsource data for that
>>> sort of analysis. It has reached a point where I think that it's time to
>>> share it with the Go community.
>>>
>>> The GitHub Vet Project <https://github.com/github-vet> performs static
>>> analysis on public Go repositories hosted on GitHub in order to better
>>> understand the impact of this proposed language change
>>> <https://github.com/golang/go/issues/20733>. It consists of two bots.
>>> VetBot crawls GitHub to snippets of code it thinks could be interesting, it
>>> reports it as an issue in a separate repository
>>> <https://github.com/github-vet/rangeloop-pointer-findings>, for humans
>>> to analyze via crowdsourcing. TrackBot
>>> <https://github.com/github-vet/bots/tree/main/cmd/track-bot> manages
>>> the crowdsourcing workflow.
>>>
>>> At this point, all of the features I think are necessary for the
>>> project's success have been implemented. But I am only one Gopher, and so I
>>> would like to a) make the community aware of the project and b) ask the
>>> community to help review it in three ways:
>>>
>>> 1) Test out TrackBot and the project instructions by actually
>>> crowdsourcing through the issues found so far
>>> <https://github.com/github-vet/rangeloop-pointer-findings>.
>>> 2) Review the output
>>> <https://github.com/github-vet/rangeloop-pointer-findings/issues> and
>>> raise concern if anything that I claim ought to be excluded
>>> <https://github.com/github-vet/bots/tree/main/cmd/vet-bot#2-run-static-analysis>
>>> is somehow making it through.
>>> 3) Static analysis experts: review the analyzers
>>> <https://github.com/github-vet/bots/tree/main/cmd/vet-bot> and
>>> ruthlessly question anything that could lead to a false negative. I don't
>>> think anything exists, but one pair of eyes is often wrong, and there are
>>> many folks on this list with (much) more expertise than me.
>>>
>>> One final thing. The crowd-sourcing workflow I've designed relies on the
>>> opinion of experts to help estimate the reliability of the community
>>> assessment. In order for that to work, I need the help of some Go experts
>>> who are willing to commit some time to reviewing the findings. If you'd
>>> like to participate in this way, first, read the TrackBot documentation
>>> <https://github.com/github-vet/bots/tree/main/cmd/track-bot> to
>>> understand what being an expert entails. If you're still interested, email
>>> me with the subject line 'GitHub Vet Expert' and include your GitHub
>>> username and a brief outline of your experience with Go.
>>>
>>> It's my hope that this project can provide some data that can help to
>>> move Go forward. To that end, I'm also interested in any and all feedback
>>> and suggestions. Contributions are also welcome
>>> <https://github.com/github-vet/bots/issues>.
>>>
>>> Thanks for reading,
>>>
>>> K. Alex Mills, Ph.D
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "golang-nuts" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to golang-nuts+unsubscr...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/golang-nuts/CALJzkY86ZgQMQBqiAyDOKHHionjLZJbB6f%2BEDcMp82ZaPCKmXw%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/golang-nuts/CALJzkY86ZgQMQBqiAyDOKHHionjLZJbB6f%2BEDcMp82ZaPCKmXw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAA%3DXfu0rdbJ7gA9K%3DLzLKs%3DLCUtOW6p3USJm%2BaT3DrJBoZYe8Q%40mail.gmail.com.

Reply via email to