bug-global
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: possible Global bug - not picking up symols?


From: jan
Subject: Re: possible Global bug - not picking up symols?
Date: Thu, 30 Apr 2020 15:42:52 +0100

Hi,
this may be a bit difficult as I don't know how Global parses stuff.
I assume it does less than a compiler, but does more than a simple
parser as you are trying to keep relationships between symbols ("x is
declared here and used there").
So I'm not sure what to expect.

Anyway, the easiest way is just to git clone gromacs from
<https://github.com/gromacs/gromacs> and run gtags on it. You know
that it is complete and compiles (use the v2020.1 tag, which does
compile. HEAD may not). Then just run gtags and htags on it.

Then in the HTML that htags has made go  to
/src/gromacs/analysisdata/dataframe.cpp and you'll see stuff that is
not underlined.

---

However, that is not a minimal example (and gromacs is big), so
instead get hold of these 2 files
    dataframe.cpp
    dataframe.h

from <https://github.com/gromacs/gromacs/tree/master/src/gromacs/analysisdata>

and put them in a directory "src" and run gtags and htags on them.
Then search. This finds something, correctly:

search->    global dx_
finds  ->    src/dataframe.cpp

but

search->    global index_
finds  ->    (finds nothing)

Both index_ and dx_ are defined in 'dataframe.h':

    class AnalysisDataFrameHeader
    {
    ...
    private:
        int  index_;
        real x_;
        real dx_;
    };

So they should be found. As I understand it, anyway.

I've attached these 2 files but they may not get through as mailing
lists tend to delete attachments.

---

Is this OK? If you want it even simpler I can set up a simple github
repo with just these files which you can pull from.

Happy to do that if it makes things easier - let me know.

thanks

jan


On 30/04/2020, Shigio YAMAGUCHI <address@hidden> wrote:
> Hello,
> Could you please give me a reproduce method to understand the problem?
> It would be helpful if you could describe it as concisely as possible.
>
> Thanks,
> Shigio
>
> 2020年4月30日(木) 21:26 jan <address@hidden>:
>>
>> (if anything below is unclear, please shout!  I will try to explain
>> better)
>> (also please acknowledge that it's been received, just so I know it's
>> not got lost)
>>
>> Hi,
>> this bug (if it is a bug) seems to have been around a long time. I can
>> see a reference to something like this here, from 2007
>> <https://lists.gnu.org/archive/html/bug-global/2007-10/msg00004.html>
>>
>> I installed Global yesterday, as part of setting up emacs as a proper
>> IDE,  and started to play. I built the tag table and the very first
>> thing I did was pick a random symbol and look for it.
>> Global couldn't find it, which caused me a couple of hours more
>> playing and reading the manual. I still don't get it. Maybe it's me.
>>
>> I am also very, very rusty with C++ so I may be getting things wrong
>> there.
>>
>> The project is gromacs <http://www.gromacs.org/>.
>>
>> The size of the project source is 43.6MB. The total size of
>> gpath/grtags/gtags is 17.4MB.  The documentation implies these would
>> be about the size of the original source file, but this is ~1/3rd the
>> size so I'm surprised.
>>
>> I looked for a constructor
>> "AnalysisDataPointSetRef::AnalysisDataPointSetRef". It can't find this
>> or even "AnalysisDataPointSetRef" by itself. It can't seem to find a
>> number of symbols.
>>
>> If I generate the HTML it
>> AnalysisDataPointSetRef::AnalysisDataPointSetRef shows up, but without
>> underlining. In fact quite a number of symbols show up without
>> underlining in that source file. The following is from the HTML file
>> with recognised (underlined) items made upper case.
>>
>> AnalysisDataFrameHeader::AnalysisDataFrameHeader
>>  (int index, REAL X_, REAL dx) :
>>     index_(index),
>>     X_(x),
>>     DX_(dx)
>> {
>>     GMX_ASSERT(index >= 0, "Invalid frame index");
>> }
>>
>> Non underlined items are
>> AnalysisDataFrameHeader::AnalysisDataFrameHeader, index_, index, x and
>> dx. Therefore it seems not to be picking these up?
>>
>> Looking for these it can find the underlined ones:
>>
>> >>>global dx_
>> gromacs_working/src/gromacs/analysisdata/dataframe.cpp
>>
>> but
>>
>> >>>global index
>> (nothing)
>>
>>
>> From the same file, another example; similar constructor but
>> conventional parameters are being inconsistenly picked up. As before
>> underlined items are made upper case here:
>>
>> AnalysisDataPointSetRef::AnalysisDataPointSetRef
>>                         (const AnalysisDataFrameHeader&  HEADER,
>>                   const AnalysisDataPointSetInfo& pointSetInfo,
>>                   const ANALYSISDATAVALUESREF&    values)
>>
>> So it can see HEADER and ANALYSISDATAVALUESREF but apparently nothing
>> else?
>>
>> OS is windows 2008R2.
>> Global version is 6.6.3
>> The project compiles cleanly so it's not been confused by syntax errors.
>>
>> Happy to help further.
>>
>> thanks
>>
>> jan
>>
>
>
> --
> Shigio YAMAGUCHI <address@hidden>
> PGP fingerprint:
> 26F6 31B4 3D62 4A92 7E6F  1C33 969C 3BE3 89DD A6EB
>

Attachment: dataframe.cpp
Description: Text Data

Attachment: dataframe.h
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]