What's new in version 8 (May 2016)?

Top  Previous  Next

 

This text describes changes and new features in Pascal Analyzer version 8, compared to version 7.x. The new version has been enhanced with a lot of smaller and greater features.

 

 

Support for Delphi 10.1 Berlin

Pascal Analyzer now also supports all targets for Delphi 10.1 (released April 2016).

 

 

Support for Delphi XE8 and Delphi 10 Seattle

Pascal Analyzer now also supports all targets for Delphi XE8 (released April 2015), including the new iOS 64-bits compiler.

 

It also supports all targets for Delphi 10 Seattle (released August 2015)

 

 

Improved Unicode-awareness

Reports will now be written in Unicode (UTF-8). This means that if you for example use Russian letters in your source code, these will show up correctly in the reports.

 

 

New 64-bit version

Pascal Analyzer is in this version available in both 64-bits and 32-bits. The new 64-bits version is in PAL.EXE and PALCMD.EXE. The 32-bits version is in PAL32.EXE and PALCMD32.EXE.

 

The 64-bits version is installed (as default) under "C:\Program Files\Peganza\Pascal Analyzer 8". The 32-bits version will be located in the sub-folder "PAL32".

 

However, if you install on a 32-bits system, only the 32-bit version will be installed (as default in the folder "C:\Program Files (x86)\Peganza\Pascal Analyzer 8").

 

The 64-bits version is faster, but consumes more memory. Nevertheless, if you are on a 64-bits computer (which you must probably are), your first-hand choice should be to use the 64-bits version.

 

 

Built-in multi-tab-page editor

Optionally you can now edit source files within Pascal Analyzer. We have added a full-featured editor that lets you conveniently edit source files. Use this editor for small changes without leaving the Pascal Analyzer environment. Optionally you can also mimic the way backup files are copied to the "_history" folder.

 

To invoke the editor, just double-click on an identifier in a report. The editor window will then be displayed, the source file loaded and the cursor positioned on the relevant line.

 

The editor has got many of the expected features, like undo-redo capability, syntax highlighting, and so on.

 

clip0164

Editor window in Pascal Analyzer

 

 

There are also navigation features in the source code editor. You can navigate between references (reads and sets etc) for the selected object, quickly go to declaration or implementation for a selected method, etc.

 

For example, right-click on an identifier in the source code, and display a menu of locations where the identifier is referenced:

 

clip0163

Local menu with references for the selected identifier

 

 

Then click a menu item to navigate to the reference location.

 

For advanced development work, our recommendation is that you should continue using the powerful RAD Studio IDE from Embarcadero as your main editing environment.

 

But the editor in PAL will come in handy when navigating your source code and making minor modifications.

 

 

Reports displayed in multi-tab-pages

Each report will now as default be displayed in a separate tab page viewer. It is then easy to switch between different reports. It is possible to revert to the pre-PAL8 action, which was to show reports in a single viewer.

 

 

Start viewing reports, as soon as they are ready

In this version, reports are available for viewing as soon as they are ready. You do not have to wait till all reports are produced. As soon as a report is ready, its corresponding entry in the tree will be enabled. This is because reports are produced in a special thread.

 

 

Parse less code, still produce full reports

You can now choose to skip parsing implementation sections for units that are not reported. This is the default option, but you can still revert to the pre-PAL8 action, which was to also parse those parts. The results will be the same, except for the Uses Report, which will be more complete if you choose to also skip non-reported implementation sections.

 

 

Record fields also tracked

Now also individual record fields are tracked, that means they are registered whenever referenced (read or set for example). The reports will include information about these fields.

 

 

Improved performance

Performance is now increased quite a lot, both for parsing and building reports. This version is about 30-50% faster than version 7.x (your mileage may vary). Memory consumption has also been drastically reduced.

 

 

Improved quality

We have done a lot of work in this release, to avoid displaying false warnings. The internal workings of PAL have been refactored and enhanced in many ways. However, PAL can sometimes not fully resolve object references. Objects may be created through a class reference, and then it is not possible for a static code analyzer to know which objects that are in fact created at runtime.

 

 

New Description property for projects

You can now optionally associate a descriptive text or comment to a project definition. As other parts of PAL, it also supports Unicode.

 

 

New Start page

There is a new start page with online content from Peganza's blog. There is a setting in the preferences dialog, to turn on/off this feature.

 

 

New section in Warnings Report

There is a new section "Possible bad assignment". It lists assignments to bigger variables, where data loss is possible.

 

 

New section in Code Reduction Report

There is a new section "Fields only used in single method". It lists fields that probably instead could be declared as local variables.

 

 

New section in Optimization Report

"Local subprogs", displays a list of nested (local) subprograms. Normally performance is better if you avoid nesting, mainly because the compiler can do a better job using available processor registers instead of the stack.

 

 

New columns in Modules Report

The three new columns display the encoding for a source code file (like "UTF-8" etc), and also shows if it has "initialization" or "finalization" sections.

 

 

See also:

 

What's new in version 9?

What's new in version 7?

What's new in version 5?

What's new in version 4?