Prolint is a tool for automated source code review of Progress 4GL code. It reads one or more sourcefiles and examines it for bad programming practice
When you are interested Prolint, you are encouraged to subscribe to this group where you find the on-line tools to collaborate and discuss Prolint. There is a discussion forum, you can submit issues (for bugs and enhancement requests), you can modify the on-line documentation. So subscribe, and then don't forget to go to your subscription details to enable the e-mail notification!
I need to find a source code analyzer for my company's Progress code and Prolint sounds like a perfect option. We use Progress v9.1e on a Linux server and the CHUI procedure editor for development here. My attempts to install Prolint have been unsuccessful. I downloaded Prolint v73 and its directories are included in the PROPATH. But there were run-time errors when trying to run prolint/launch/start.p (see attached pdf). I could not find very much related to running this from the CHUI Progress editor. Does anyone have any advice?
Hello!
I'm having an issue regarding Prolint 74.
Every time I run it to lint a program, that program becomes read-only for the AppBuilder. If I try to modify and save the program file to lint it again I get this message from AB:
---------------------------
Warning
---------------------------
C:\Users\...\program.p
Cannot save to this file.
File is read-only or the path specified
is invalid. Use a different filename.
---------------------------
OK
---------------------------
I have a source that compiles but when I run it through Prolint I get a warning?
What is wrong and how can I prevent this warning?
This is a simplefied piece of code (this compiles but gives the same warning when running through Prolint 74)
def temp-table tt1 no-undo
field Number as int.
define stream s-export.
def var v-NMexp as char no-undo.
def var htt as handle no-undo.
output stream s-export to value(v-NMexp).
htt = temp-table tt1:table-handle.
run _proc-table-export(input table-handle htt by-reference,stream s-export:handle).
We have some programs that use aliases that consists of 1 character (don't know why but they exsist).
for example in the code they use s..
I can find in the Prolint documentation that we can use the file /settings/dbaliases.d to prevent compile errors warnings for those in Prolint.
I've create that file and inserted the following lines
"s" "mydatabase"
"m" "mydatabase"
But when I run the program that uses these aliases in Prolint I still get
compile failed
Unknown database name s. (855)
Is there anyone that uses this dbaliases.d file?
TokenLister gives following error
---------------------------
parserParse (Press HELP to view stack trace)
---------------------------
org.prorefactor.refactor.RefactorException: W:\cce\appl\test\cvb\proparse\parse_error_pubsub.p:5:10: unexpected token: (
---------------------------
OK Help
---------------------------
when parsing the attached source. This source compiles and executes correctly.
It would seem the named file cannot be found, but it seems to be setup just like another system that is working. Thoughts?
Windows XP, local drive
This is a generic installation guide slightly modified from an actual installation. Please update as you see fit. Please keep in mind, we would like this to be generic enough so it can be used by all. The guide is written in MS Word.
This error can arise if you are trying to run the Proparse dll files across a network without adequate access for the dll. For example, if you run Prolint from c:\prolint, but your dll files are located on a mapped drive e:\assemblies, you may get this error. Putting the dll files (assemblies from Proparse) on your local PC should avoid this error - unless you have limited access even on your PC.
** c:\p4gl\tools\prolint\proparse-shim\api\proparse.i Could not understand line 42. (196)
What gives?
received this question by e-mail and thought it should be answered in public:
When I do the extract adecomm.pl on my 10.2B windows install, adecomm.pl is in the gui directory, not src and nothing is showing as being extracted. There are, however, 5 .i files in the adecomm subdirectory before I started.
OpenEdge allows to write a method that does not contain a "return" statement, even when it is not a void method. We'd like a warning (from Prolint) for that
How would I create settings per Profile/Ruleset.
We have Rulesets per release. (When checking in code for release 4.1, Ruleset "4.1" is used etc.)
Now I have created a rule which checks some unwanted code, but it should only do so for codes "a,b,c" from 4.1 onwards and "a,b,c,d,e,f" from 4.2 onwards.
In the prolint.properties.p I can add settings, but they are for all profiles.
I would like some settings in the profile-directory.
Any suggestions on how to implement this?
Niek
When a function, method or internal procedure has statements close to the end like 'delete object', 'delete procedure', 'set-size(mem)=0', then Prolint may suggest that you put a "finally:... end" block around it.
Prolint 74 is ready for download.
It includes bufixes and contributionns by Niek Knijnenburg.
Release 74 does not work with Proparse.DLL anymore but with Proparse.NET. So if you upgrade Prolint to 74 from an older version, you can remove your old "proparse" directory and need to install the new Proparse assemblies. That's a bit of work (well not that much) but it gives you power over the latest ABL language constructs, so it's worth it.