git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/1] git-gui: remove unused global declarations

From
Pratyush Yadav <me@yadavpratyush.com>
Date
Oct 29, 2019, 19:09 UTC
Message-ID
<20191029190934.mr73g3ohwtgmndoo@yadavpratyush.com>
In-Reply-To
<nycvar.QRO.7.76.6.1910281412300.46@tvgsbejvaqbjf.bet>
On 28/10/19 02:15PM, Johannes Schindelin wrote:
Show 15 quoted lines
> Hi Pratyush,
> 
> On Fri, 25 Oct 2019, Pratyush Yadav wrote:
> 
> > A lot of places have unused global variables declared. Remove them.
> >
> > It started as a couple of quick fixes and ended up in me writing an ugly
> > hacky script to catch all the instances of unused global declarations.
> > Lot more than I expected.
> >
> > The script can be found at [0].
> 
> Wouldn't it make more sense to integrate that script into a Makefile
> target `check`, rather than hiding it in a gist (that might become
> unavailable if GitHub goes away, as some of you seem to fear)?

The idea of the script was just a quick hack to list as many instances as possible, and then I could manually verify them. It turned out to be pretty accurate. I linked it here so other people can know what I used to find these, and can suggest some cases I missed, if any. That's why I linked to the script in the cover letter, and not in the commit message.

It would probably be a better idea to use a linter/static analyzer. This would provide much better coverage than a script written for one-off usage.

I looked up some linters. There doesn't seem to be a lot of options, and 
most of them are not very good. One option I found is [0], but it gives 
more useless warnings than useful ones. Tcl being a really difficult 
language to lint doesn't help. So unless someone knows a good Tcl 
linter, maybe the best compromise would be to clean up the script and 
add it to our build process. But I'd really prefer a "proper" linter.
 
Show 5 quoted lines
> > The script at [0] will only catch the unused globals in 'proc's. But
> > git-gui also has 'method's and 'constructor's. Just change '^proc' to
> > '^constructor' or '^method'.
> 
> Why not use `grep -E -n -e '^(proc|method)'`?
No particular reason. I just wrote it for 'proc', and then realized I 
might as well check 'method' and 'constructor'. Like I said, the aim of 
the script was use-and-throw.
 
Show 7 quoted lines
> > I manually checked each instance before removing just to be sure I'm not
> > doing something wrong. Still, a bit of testing would be appreciated.
> > Just apply this patch and go on about your business as usual. There
> > _should_ be no change in the behaviour. I tested some basic functions
> > like commit, push, etc, and they work fine for me.
> 
> I would, if I used Git GUI regularly ;-)
[0] https://github.com/Xilinx/XilinxTclStore/blob/master/support/linter/tcl_lint.tcl
-- 
Regards,
Pratyush Yadav
Previous: Johannes Schindelin
Message 6 of 6 in “git-gui: remove unused global declarations”
  1. 0/1 git-gui: remove unused global declarationsPratyush Yadav, Oct 25, 2019
  2. 1/1 git-gui: remove unused global declarationsPratyush Yadav, Oct 25, 2019
  3. Junio C HamanoOct 25, 2019
  4. Pratyush YadavOct 29, 2019
  5. Johannes SchindelinOct 28, 2019
  6. Pratyush YadavOct 29, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.