What's new in version 6 (August 2011)?

Top  Previous  Next

 

This text describes changes and new features in Pascal Analyzer version 6, compared to version 5. The new version has been enhanced with a lot of smaller and greater features. Together they make this upgrade one of the most important in the history of Pascal Analyzer. There is now a total of 51 reports, with 197 report sections. Also there are four special multi-reports.

 

 

Support for Delphi XE2, XE3 and XE4

From version 6.1, PAL also supports Delphi XE2 (Win32, Win64 and OSX targets).

Support for Delphi XE3 (Win32, Win64 and OSX targets) was added in version 6.2.

Delphi XE4 (Win32, Win64, OSX, iOS) support was added in version 6.3.

 

 

Relative path for main file

For the main file that is analyzed, it is now possible to use relative paths. The path is entered relative to the location of the project file itself.

So, for example, if the project file is C:\PALProjects\MyProject.pap, and the main file is entered as "MyApp.dpr", PAL will look for this file in the folder C:\PALProjects. Likewise, if the main file is entered as "..\Dir\MyApp.dpr", PAL will look for the file in the C:\Dir folder.

 

This feature is very convenient if you share PAL projects between more than one computer. Instead of specifying a main file path as "C:\Projects\MyApp.dpr", and get problems when running on another computer that has the location "D:\Projects\MyApp.dpr", you can now specify "MyApp.dpr" which will work on both computers.

 

 

New Help Report

The new Help Report checks help topics for the analyzed project's help system. Help topics are normally defined  as numbers in an external *.h-file. These values correspond to values of the HelpContext property. The first report section presents a list of all HelpContext values found in DFM files. Following two sections report topics that are either missing in the *.h-file, and HelpContext values that are missing in the DFM files.

 

 

New Searched Strings Report

The new Searched Strings Report searches for strings in the project's source code files. For each search string it reports files where the strings exists, and files where they not exist. Use the report for example to verify that your source code files include a copyright notice, or common include files.

 

 

New Map File Report

The new Map File Report displays information about modules that are linked into the binary executable (EXE, DLL). It generates this information from the MAP file that can be generated for your Delphi project when compiling the source code.

 

 

Improvements in Third-Party Report

In the Third-party dependencies Report, the sort mode now has importance. The sort mode is set on the General tab page for the project options. The lists are displayed in module-identifier or identifier-module order.

 

 

Check for local variables that are referenced before being created

There is a new section in the Memory Report that reports local variables (objects) that are referenced before they are created. This is an error that in most cases will result in a runtime error.

 

 

Check for local variables that are referenced after being freed

There is a new section in the Memory Report that reports local variables (objects) that are freed, but referenced further down in the code. This is an error that in most cases will result in a runtime error.

 

 

Duplicate lines

This new section in the Warnings Report gives warnings for source code lines that are duplicated, which means that two identical lines occur right after each other. This could be a mistake in the code.

 

 

Check for local variables that are set but not read further down in the code

This is a new section in the Warnings Report that reports variables that are set, but never referenced further down in the code. It indicates some programming mistake.

 

 

Improvements in Warnings Report - Local variables that are referenced before they are set

This section in the Warnings Report has been improved. References of a variable with "SizeOf(Var)" are considered safe, and do not render an unnecessary warning.

 

 

Improvements in Warnings Report - Function result not set

This section in the Warnings Report has been improved. The detection of functions where the result has not been set, is now much more accurate.

 

 

New section in Warnings Report - Duplicate class types in except-block

This section in the Warnings Report checks if the same class type has been used more than once in an except-block, in an on-statement. It indicates some programming error.

 

 

Default report sections

Some sections in the Warnings Report, are in this version removed from the default selection of included report sections. These are the sections where the results are not certain, and where the results often are false positives. It is the sections that contain "possibly" in the name.

 

 

Improvements in Complexity Report - Complexity per module/subprogram

This section in the Complexity Report has been extended with a part listing all modules. Furthermore, the items displayed in the report can be listed in order according to LOC, Lines, etc. This is of great value for example when finding out which modules or functions that are most complex.

 

 

Improvements in Literal Strings Report

The Literal Strings Report now supports sorting of the strings. The sorting done depends on the sort mode setting in Options|Properties - General, so either the sorting will be according to module or according to the string itself.

 

 

Improvements for multi projects

All reports for multi projects have been improved. The reports now only display identifiers that are used in more than one of the analyzed projects.

 

 

New menu to check for newer version

There is a new menu command under Help, that lets PAL check if there is a newer version available. If you do not activate the option to let PAL automatically check for newer versions on startup, this is a way of doing it manually.

 

 

Close button for source viewer window

There is a new button available when the source viewer window is open. With this button you can close the window.

 

 

Customize "subprogram" string

Some of our users want to use another string than "subprogram" in the report headers. It is now possible to select another string, for example "function" or "subroutine".

 

 

New switch /D for PALCMD

This new switch lets you specify conditional defines for PALCMD, the command-line version of PAL. If present, they will override the setting in project options.

 

 

New switch /X for PALCMD

This new switch lets you specify excluded search folders for PALCMD. If present, they will override the setting in project options.

 

 

Improvements in Status Report

The Status Report now also displays total time for each report, not only parsing and report building time. It also reports user-defined environment variables, if they are found, and their translation. For example, if you have defined an environment variable "$(THIRD)", it will be displayed together with its translation "C:\3RDPARTY".

 

 

Show implementation line numbers

A new option determines if the line number where a subprogram is declared is displayed in the reports. If set to Yes, instead implementation line number is displayed. This has meaning if you double-click on the line to jump to the source code. Either it will then take you to the declaration or the implementation line. Often you would probably prefer to reach the implementation. In previous versions of PAL, the line number displayed was always for the declaration line.

 

 

Improved documentation

The help texts have been improved and extended. For example, report codes, like "WARN12" are now displayed for each report section. These codes can be used when running PALCMD.EXE.

 

Also, check out the FAQ page at our web site. It will give answers to many common questions.

 

 

See also:

What's new in version 9?