Issues parsing buildoutput
Morten Volden
mvolden2 at gmail.com
Tue Oct 23 20:29:56 UTC 2012
2012/10/16 Peter M. Clausen <petermichaelclausen at gmail.com>
> Hi Morten,
>
> I will not be hacking much in KDE - I'm a fortran guy, not C++ :-)) So
> before I add an account and all I would ask if you perhaps would to look at
> the (fairly trivial) changes I made? And if they are OK push them into the
> master branch. I'm new to git as well, so I dont really get it regarding
> pushing changes...
>
> Any change that I propose will still need to be reviewed by the core
developers. In theory I could still do that, but I sincerely believe that
both you and KDevelop is best helped if you do.
> I believe that the files attached are OK ('modified_files.tar.gz') - if
> you want the diff it is in 'diff_origin_master.txt'. I've modified the
> tests as well, and they run without errors.
>
> One thing I dont understand is that it does NOT work for gfortran in
> kdevelop! (see Screenshot_kdev.png). It does not highlight and I cant jump
> in code. If you install gfortran it should be strainght forward to open the
> Cmake-mini-test_f (in 'test_f.tar.gz') I've made.
>
> I have not had the time to try out your patch on my machine, but I think I
may have an idea of why the unit test passes and it fails when you compile.
The gfortranError2 test you have written: You are feeding the errorInLine
function multiple lines, but when you compile it will receive each line
separately, and therefore the regex will not match.
Regards
Morten
> It is only gfortran thats a problem - intel fortran works like a charm
> with highlighting as well as jumping to the correct places in the code.
>
> Thanks for your help!
>
> Best regards
>
> Peter
>
>
>
>
> 2012/10/15 Morten Volden <mvolden2 at gmail.com>
>
>> Hi Peter
>>
>> As far as I know the re-factoring of the output filtering is not in the
>> 4.4. branch, so when you say 4.4. branch I assume you mean master.
>>
>> The ErrorFormat class constructors looks like this:
>>
>> ErrorFormat( const QString& regExp, int file, int line, int text, int column=-1 );
>>
>> ErrorFormat( const QString& regExp, int file, int line, int text, const QString& comp, int column=-1 );
>>
>> The 'file', 'line', 'text', and 'column' integers indicate what group in
>> the regExp that information is found (for example the file information is
>> found in the second pair of parentheses in the regular expression in the
>> ErrorFormat constructor below.)
>>
>> I am not near my workstation right now so I cannot say for certain, but
>> something like the ErrorFormat constructor below should work (In master).
>>
>> ErrorFormat( "^fortcom: ([a-zA-Z]+): (.*), line ([0-9]+):(.*)", 2, 3, 1,
>> "intel" )
>>
>> In the outputview/test directory there is a file called
>> filteringstrategytest.cpp. I highly recommend that you implement a unittest
>> for your case there.
>>
>> Once you have a working patch and test in place, you can use kdevelop to
>> post that on git.reviewboard.kde.org
>>
>> Hope this helps
>>
>> /Morten
>>
>> 2012/10/15 Peter M. Clausen <petermichaelclausen at gmail.com>
>>
>>> sorry - I used the wrong list...
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Peter M. Clausen <petermichaelclausen at gmail.com>
>>> Date: 2012/10/15
>>> Subject: Issues parsing buildoutput
>>> To: kdevelop at kdevelop.org
>>>
>>>
>>> Hi
>>>
>>> I'm working with kdevelop 4.3.1 (Ubuntu 12.04). I was trying to fix an
>>> issue parsing intel fortran (ifort) build output. I am able to do so in
>>> 4.3.1 branch, but not in 4.4. (latest) branch.
>>>
>>> Problem using Intel Fortran: "Info" output cannot be 'clicked' on and
>>> let cursor jump to problematic place. "Error" is OK.
>>>
>>> I looked into the file
>>> kdevelop-4.3.1/projectbuilders/makebuilder/outputfilters.cpp line 38:
>>> org:
>>> << ErrorFormat( "fortcom: (.*), line ([0-9]+):(.*)", 1, 2, 3,
>>> "intel" )
>>>
>>> new:
>>> << ErrorFormat( "[a-zA-Z]+: [a-zA-Z]+: (.*), line ([0-9]+):(.*)", 1,
>>> 2, 3, "intel" )
>>>
>>> Thus it will match both following lines:
>>> fortcom: Error: /scratch/var_r_en.f90, line 292: Syntax error, found ')'
>>> when expecting one of: ( <IDENTIFIER> <CHAR_CON_KIND_PARAM>
>>> <CHAR_NAM_KIND_PARAM> <CHARACTER_CONSTANT> <INTEGER_CONSTANT> ...
>>> if (record_exists==)
>>> fortcom: Info: /scratch/var_r_en.f90, line 101: This variable has not
>>> been used. [D]
>>> real D
>>>
>>>
>>> I tried to look at this in 4.4. branch (
>>> http://anongit.kde.org/kdevplatform/kdevplatform-latest.tar.gz) and it
>>> looks like it has been moved
>>> to: ./kdevplatform/outputview/outputfilteringstrategies.cpp
>>> But here I cant make it work. I've changed the line 88:
>>> org:
>>> << ErrorFormat( "^fortcom: (Error): (.*), line ([0-9]+):(.*)", 2, 3,
>>> 1, "intel" )
>>> new:
>>> << ErrorFormat( "^[a-zA-Z]+: [a-zA-Z]+: (.*), line ([0-9]+):(.*)",
>>> 1, 2, 3, "intel" )
>>>
>>> But it does not work as in 4.3.1. Doing the above change only matches
>>> the first error, not any info or any other errors afterwards. Could someone
>>> please help me here? I was also wondering why "2, 3, 1" should be the new
>>> order of arguments, compare to 4.3.1 branch.
>>>
>>> I have never submitted anything to a KDE-project, so I would be
>>> thankfull if someone could point me to a "how to".
>>>
>>> Best regards
>>>
>>> Peter
>>>
>>> PS. Keep up the good work on my favorite IDE.
>>>
>>>
>>> --
>>> KDevelop-devel mailing list
>>> KDevelop-devel at kdevelop.org
>>> https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel
>>>
>>>
>>
>>
>> --
>> - When the split is pulled, mr. Grenade is no longer our friend
>>
>> --
>> KDevelop-devel mailing list
>> KDevelop-devel at kdevelop.org
>> https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel
>>
>>
>
> --
> KDevelop-devel mailing list
> KDevelop-devel at kdevelop.org
> https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel
>
>
--
- When the split is pulled, mr. Grenade is no longer our friend
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20121023/4bc9ec58/attachment.html>
More information about the KDevelop-devel
mailing list