History for Pascal Browser


This is a list of changes (error fixes and enhancements) for Pascal Browser.

Version 3.5.33 December 16, 2024
  • new switch /PRIO for PABCMD.exe to set process priority (calls SetPriorityClass)
  • deactivate license is now done in the About-box
  • it is valid to use relative paths in the "Search folders" setting in project properties. These were previously resolved only according to the folder of the PAL/PAB project file. Now it is also resolved according to the folder of the main file for the analysis.
  • new switch /BUILD in PABCMD to set build configuration, overriding setting in the project properties or in the DPROJ-file
  • fixed an error reading DPROJ files
  • fixed an issue with inline variables
  • switches for hints and warnings now also can be set on the Switches tab page in project properties
Version 3.5.31 October 22, 2024
  • improved selection of output root directory, and templates directory
  • repeated run in same session could trigger errors
Version 3.5.30 September 12, 2024
  • fixed issue with third-party code
Version 3.5.29 September 3, 2024
  • numerous low-level fixes and improvements
  • fixed some issues with exceptions
  • fixed issues with overloads
  • conditional define symbol LLVM is from Delphi 12 predefined for LLVM-based compilers (synonym to EXTERNALLINKER)
  • fixed issue with with-statements
  • fixed issue with goto-labels and if-statements
  • fixed issue with non-standard formatted case-structures
Version 3.5.28 April 23, 2024
  • numerous low-level fixes and improvements
  • fixed some issues with forward declarations
  • fixed error parsing "deprecated" directive
  • fixed error related to operators
  • fixed some issues with local subprogram
  • improved handling of records with variant part
  • fixed issue for with-statement
  • fixed issue with helpers
  • fixed issues with overloads
Version 3.5.27 March 8, 2024
  • fixed issues with multi-line strings
  • fixed issue with generics and forward declarations
  • fixed issue with overloads
Version 3.5.26 February 21, 2024
  • improved handling of attributes
  • improved handling of overloads
  • fixed low-level parser issue
Version 3.5.25 February 10, 2024
  • improved handling of class/record helpers
  • improved handling of if-statements formatted in a non-standard way
  • improved handling of records with variant fields
  • improved handling of type declarations inside class/record declarations
  • improved handling of overloads
  • fixed low-level code that could not handle very large string constants
  • fixed error parsing deprecated constants
Version 3.5.24 January 23, 2024
  • fixed a problem parsing literal strings
Version 3.5.23 January 20, 2024
  • fixed a problem with generics
  • fixed a problem with code paths
Version 3.5.22 January 15, 2024
  • fixed some issues with try-finally blocks and code paths
  • fixed some issues with generics
  • fixed some issues with overloads
  • fixed some threading issues
Version 3.5.21 November 20, 2023
  • now supports also Delphi 12 Athens
  • fixed some issues with environment variables
Version 3.5.20 October 26, 2023
  • fixed some problems with generics
Version 3.5.19 September 19, 2023
  • fixed error parsing form files for FileMonkey
  • fixed some issues with overloads
Version 3.5.18 August 14, 2023
  • lots of internal fixes and improvements, also with regard to memory consumption and speed
  • fixed an issue with nested class types and constants
  • fixed some issues with overloads
Version 3.5.17 March 27, 2023
  • fixed issues with compilation directives
  • improved interpretation of $IF-expressions
  • fixed some issues concerning generics
Version 3.5.16 March 3, 2023
  • fixed issue resolving overloaded functions/procedures
  • improved UI for visually impaired users
  • adjusted for Delphi 11.3
Version 3.5.15 December 20, 2022
  • improved error handling when source file contains invalid characters
Version 3.5.14 November 3, 2022
  • fixed a problem with inlined variables
Version 3.5.13 October 5, 2022
  • fixed an error related to 32/64-bits types
Version 3.5.12 September 9, 2022
  • adjusted for Delphi 11.2
Version 3.5.11 August 24, 2022
  • improved handling of custom managed records
  • fixed some memory issues
Version 3.5.10 August 8, 2022
  • fixed issues finding files
  • for a package main file (*.dpk) the corresponding *.dproj file was not read
  • fixed some generics problems
  • improved handling of inlined variables
Version 3.5.9 July 6, 2022
  • fixed a problem parsing properties
  • fixed 32/64-bits issue when converting to/from file names
  • a new project must now be saved before running
  • fixed a problem finding INC-files
Version 3.5.8 March 9, 2022
  • fixed a problem parsing properties
Version 3.5.7 March 1, 2022
  • fixed some problems parsing expressions
Version 3.5.6 February 8, 2022
  • improved handling of interfaces
  • fixed parsing error for property declaration in some edge case
Version 3.5.5 January 21, 2022
  • fixed an issue with class/record helpers
  • fixed some issues concerning overloaded subprograms
  • fixed a problem recognizing identifiers in some edge case
  • fixed an error while parsing variant records
  • fixed an error resolving property references
  • fixed an error related to properties and generic types
Version 3.5.4 January 2, 2022
  • fixed an issue resolving function calls
Version 3.5.3 December 29, 2021
  • fixed an issue resolving overridden function calls
Version 3.5.2 December 15, 2021
  • removed an exception that could occur while parsing $IF-expressions
Version 3.5.1 December 3, 2021
  • fixed some issues with class helpers
  • fixed an issue with overloaded functions
Version 3.5.0 September 21, 2021
  • added support for Delphi 11
  • improved function that checks for new version
Version 3.4.6 August, 2021
  • also supports Delphi 10.4.2
  • calls to Writeln procedure were not always handled correctly
  • DefStyle.css and Funcs.js were missing from template files directory
Version 3.4.5 February 4, 2021
  • new version of activation component
Version 3.4.4 September 22, 2020
  • if number of structures to analyze was less than 10, could cause exception and no reports were written
Version 3.4.3 September 18, 2020
  • if number of expressions to analyze was less than 10, could cause exception
Version 3.4.2 September 11, 2020
  • performance improvements
Version 3.4.1 August 20, 2020
  • fixed error parsing nodefault directive
  • fixed error with include-directive containing "/"
Version 3.4.0 May 29, 2020
  • added support for Delphi 10.4 (Sydney)
  • default compiler target is Delphi 10.4 Win64
Version 3.3.4 May 19, 2020
  • various fixes related to expressions
  • fixed parser error for with-statement, and inner class type
  • fixed problem related to parsing "inherited"
Version 3.3.3 May 6, 2020
  • various fixes related to expressions
Version 3.3.2 April 15, 2020
  • changed to Tahoma 9pt in dialogs
  • fixed parser error for generics
Version 3.3.1 February 20, 2020
  • now also supports source files in UCS-2
  • fixed problem parsing attributes in some cases
Version 3.3.0 December 6, 2019
  • added support for Delphi 10.3.3, with new target Android64
Version 3.2.0 August 7, 2019
  • fixed some parser problems
  • added support for Delphi 10.3.2 Rio
Version 3.1.5 May 27, 2019
  • fixed some problems for "with"-statements
  • fixed problem with "inherited" call
Version 3.1.4 March 6, 2019
  • some constants for Delphi 10.3 were missing, affected scope of analysis
  • speed improvements when analyzing structures
  • fixed parser errors for inline variables
Version 3.1.3 February 20, 2019
  • misc. memory optimizations
Version 3.1.2 January 29, 2019
  • fixed parser error for inline variables
Version 3.1.1 January 28, 2019
  • About-box can now display license information
  • fixed error handling result variable for operator methods
Version 3.1.0 December 4, 2018
  • added support for Delphi 10.3 Rio
Version 3.0.12 November 21, 2018
  • fixed problem resolving identifiers within "with"-statement
  • fixed problem resolving calls to overloaded function
Version 3.0.11 October 27, 2018
  • dialog to select folders is now much wider, so more of the path is visible
  • fixed problem with code that could be stuck in infinite recursion
  • fixed error with false positive for OPTI8-"Var param can be changed to out"
Version 3.0.10 September 26, 2018
  • much improved handling of generics
  • fixed parser error when property had name "Result"
  • fixed problems related to analysis of expressions
Version 3.0.9 August 25, 2018
  • reference for used unit was not updated correctly in some cases
  • reference for class and record helpers were not correctly set
  • fixed error resolving expressions
Version 3.0.8 August 18, 2018
  • fixed error parsing unit name reference
Version 3.0.7 July 31, 2018
  • fixed problem parsing typed constant
  • fixed some problems resolving unit names
  • fixed parser, removed false syntax error
  • improved code that identified a unit as a Windows API unit
  • fixed error resolving class members
  • fixed errors resolving overloads
  • fixed error parsing typed enumerated constant
  • fixed error parsing attribute in a variant record type declaration
Version 3.0.6 June 6, 2018
  • fixed some parser errors
Version 3.0.5 May 24, 2018
  • fixed an error parsing variant record fields
  • CPU32BITS was not defined for some targets
  • fixed error resolving typecasts with "as"
Version 3.0.4 May 10, 2018
  • fixed issue with invalid typecast
  • more info added to error message
  • fixed error, now source code for initializatio/finalization is not included when source code should not be shown (change in Module.xsl template)
Version 3.0.3 March 20, 2018
  • fixed some problems with validation of licences
Version 3.0.2 March 14, 2018
  • fixed some parser problems
Version 3.0.1 February 9, 2018
  • added a couple of predefined identifiers in System.pas introduced in Delphi 10.2 Upgrade 2, for Windows targets
  • fixed parser problem with type declaration
  • fixed parser problem with class const declaration
  • fixed parser error when semicolon was omitted before "end"
  • fixed parser error for "implements"
Version 3.0.0 January 13, 2018
  • fixed some problems parsing generics
  • fixed a problem with typecasts
  • fixed an issue with private members
  • fixed parser error for record with case statement in some odd case
  • fixed problem parsing $IF-directive
  • fixed issues resolving identifiers preceded with unit name
  • fixed parser error for attribute in interface section
  • as default "Excluded identifiers from these folders in reports" is set to "$(BDS)<+>" to avoid reporting on RTL/VCL source
  • fixed issue with "with"-statements
  • fixed some problems resolving methods based on an interface
  • improved parsing speed and page generation speed
  • fixed error resolving object created through a class reference
  • fixed problems resolving overloaded functions
  • file names for generated standard files did not use selected file extension
  • fixed problem resolving calls to overloaded functions/procedures
  • fixed problem involving types declared as aliases to other types
  • fixed problem resolving members of interfaces
  • initial scope for record type fields was not set to "public"
  • fixed error resolving calls to overloaded subprograms
  • added support for Delphi 10.2 Tokyo and 10.2.1, with all compiler targets
  • PAB.EXE and PABCMD.EXE are now available also in 64-bits versions
Version 2.7.13 March 6, 2017
  • fixed error parsing declaration with generics
  • fixed error parsing "final" directive
  • fixed problem parsing class declaration with unitscoped identifier names
  • fixed some issues with references to field in objects
  • fixed some issues with dereferencing variables
Version 2.7.12 February 25, 2017
  • fixed some problems with object in DFM-file missing type
  • improved handling of references to class helper methods
  • fixed error resolving generics declaration
  • improved handling of record fields passed as parameters
  • fixed parser error related to anonymous functions
  • fixed problem resolving read/write for properties
  • fixed problem resolving overloaded calls in some cases
Version 2.7.11 January 29, 2017
  • fixed list index error when resolving unit names
  • removed false positives for references to System identifiers in some cases
  • fixed error in low-level function handling references
Version 2.7.10 January 21, 2017
  • removed some duplicate references added to identifiers
Version 2.7.9 January 14, 2017
  • fixed problem resolving unit names
  • fixed problem resolving generic types
  • fixed handling of references to record variables and field instances
Version 2.7.8 January 6, 2017
  • now uses TurboActivate 4.0.8
  • fixed parser problem with constant declared as an anonymous record type
  • fixed parser problem resolving unit names
Version 2.7.7 December 15, 2016
  • fixed problem resolving unit names
  • fixed error for units with many overloads
Version 2.7.6 November 27, 2016
  • end line of structures (for-loop, if-block etc) was not correctly registered
Version 2.7.5 November 22, 2016
  • enumerated type could be marked as unused even though its enumerated constants were used in a typed constant declaration
  • improved handling of "strict" class members
  • fixed problem for identifiers starting with '&&'
  • misc. parser fixes and improvements
Version 2.7.4 September 24, 2016
  • fixed problem resolving record type declared unnamed directly in variable declaration
Version 2.7.3 August 31, 2016
  • fixed problems with generics
  • various parser fixes
Version 2.7.2 June 13, 2016
  • fixed problem with type declaration in class
Version 2.7.1 June 6, 2016
  • fixed problem with sorting of references
  • fixed parsing problems with generics
  • internal structure could overflow in some cases
Version 2.7.0 May 10, 2016
  • added support for Delphi 10.1 Berlin, with all targets
  • fixed parser error for conditional directive
  • fixed error with pointer dereference
  • fixed problems with "with"-statements, resolving identifiers
  • fixed problem resolving overloaded subprograms
  • fixed issue with unit scope
  • fixed issue with calls to Inc, Dec
  • fixed issue with kind of type set erroneously in some rare cases
  • fixed parser problems with generics
  • fixed error with identier names
  • improved parser code for handling anonymous functions
  • improved handling of references when passed as var-parameters
  • internal list of OSX compiler versions was wrong
Version 2.6.0 Sep 30, 2015
  • fixed problems with "ampersanded" identifiers
  • fixed bad scaling for dialogs in some cases
  • support of Delphi 10 added
Version 2.5.0 Sep 2, 2015
  • now uses same backend parser as Pascal Analyzer
  • misc. fixes and updates in template files
  • support of Delphi XE8 added
Version 2.2.0 Oct 27, 2014
  • support of Delphi XE7 added
Version 2.1.0 Aug 4, 2014
  • support of Delphi XE6 added
  • fixed error resolving generics usage
  • improved resolving of calls to overloaded functions
  • fixed problem with comments after "end." in source file
Version 2.0.0 Feb 18, 2014
  • support of Delphi XE5 added
  • misc. performance improvements
  • fixed problem resolving class helper property
  • new functions to optionally create CHM file in addition to normal output from templates
  • template HeaderInc.xsl: TITLE tag now displays identifier name
  • new option for CHM compiler path (app settings)
  • new options for CHM projects for project
  • fixed error resolving identifiers in string concatenation expressions
  • fixed errors with predefined conditionals
  • wrong library path for iOS targets
  • fixed error when conditional expression spanned over several lines
  • improved handling of environment variables
  • fixed error parsing helper class
  • fixed error parsing "unsafe" directive
  • improved resolving references to identifiers with same name
  • fixed error parsing property declaration
  • improved handling of function results
  • conditional directive "EXTERNALLINKER" was misspelled
  • when reading older Delphi project files, variables were truncated after 2048 characters
  • old-style object did not recognize "var", "const" or "type" in declaration
  • fixed error with global ToDo-iin PTodo for global items
Version 1.9.0 July 18, 2013
  • support of Delphi XE4 added
  • directive "winapi" was not recognized
  • fixed problem resolving nested types
  • fixed problem resolving generic type declaration
  • when property is set, the associated "write"-object is also registered as referenced
  • when property has "write"-object, that object is considered "ref" at that location, was "set"
  • references to Low(), High() also considered "safe", like SizeOf()
  • fixed error parsing property with "default" directive
  • NATIVECODE was not predefined for some compiler targets
  • SizeOf() was not correctly handled
  • improved handling of pointers passed as parameters
  • if record field set, the record variable is also marked as set (earlier just referenced)
  • fixed problem identifying property in some cases
  • fixed error resolving identifier in expression
  • fixed error with fields in variant part of packed record
  • fixed error resolving typed constant
  • fixed error with namespaces
  • fixed error with class helper code
  • fixed problems resolving calls to overloaded functions
  • fixed error resolving reference to recordfield
  • fixed error resolving identifier after typecast
  • message for syntax error now has more information
Version 1.8.0 Dec 6, 2012
  • added support for Delphi XE3
  • fixed error with "read" directive for properties
  • fixed problems with "class property" declarations
  • fixed parser error handling record types
  • fixed parser error resolving overloaded methods with generics
  • fixed parser problem for pointer types
  • fixed parser problem with constant declaration
  • fixed problems with predefined identifiers
  • fixed error resolving implementation of overloaded methods
  • fixed error parsing attributes with nestled "["
  • fixed error resolving identifiers in some rare cases
  • fixed problem resolving pointer type declarations in some cases
  • fixed error resolving assignment of identifiers om some cases
  • fixed error parsing case-structures in some cases
  • fixed error parsing set type in record fields
Version 1.7.0 Nov 2, 2011
  • added support for Delphi XE2, all compiler targets
  • fixed error with Namespaces setting
  • improved message for parser errors in some situations
  • fixed error parsing property read declaration in some situations
  • fixed error recognizing function pointers in typed constants
  • fixed error parsing UTF-8 source files starting with blank line
  • fixed error recognizing array elements
  • fixed error parsing type declarations containing constants
  • fixed error parsing type declarations with arithmetic expressions
  • fixed error parsing var declaration with generic type
  • fixed error parsing property declaration with generic type
  • fixed error parsing $IF-expressions in some cases
  • fixed error parsing attributes with nestled "["
  • fixed error resolving identifiers in some rare cases
  • fixed problem resolving pointer type declarations in some cases
  • PAB.EXE and PABCMD.EXE now support address spaces larger than 2GB (the IMAGE_FILE_LARGE_ADDRESS_AWARE flag is set in the EXE header)
  • prevented stack overflow if bad include directive
  • directive "experimental" was not always recognized
Version 1.6.1 Apr 27, 2011
  • improved handling of local built-in "Result" variable
  • improved handling of default properties, now identifies such properties to a higher extent
  • fixed error parsing string constant with "deprecated" directive
  • fixed error parsing new Exit()-function
  • fixed handling of record destructors
  • fixed error handling property in some rare cases
  • fixed error with parser failing to resolve a function pointer
  • fixed error with default property
  • improved handling of Self in class implementations
  • improved handling of class/record constructors and destructors
  • fixed error where pointer dereference was not handled correctly
  • fixed error where procedure type directive was not handled correctly
  • fixed error handling overloaded calls
  • fixed error handling type declaration in class
  • fixed problem with anonymous methods
  • fixed error parsing "stdcall of object"
  • fixed error parsing "X = object(Y.Z)"
Version 1.6.0 Nov 1, 2010
  • added support for Delphi XE
  • fixed error sometimes occurring when loading DFM file saved as UTF8
  • fixed error parsing class helper declarations
  • fixed error parsing class code with type declarations
  • fixed error parsing anonymous method with nested function
Version 1.5.3 May 14, 2010
  • wrong file extension in template file RefInc.xsl
Version 1.5.2 April 15, 2010
  • environment variables can be used for main path
  • fixed a problem with conditional defines in some odd cases
  • $IF-expressions can be resolved in a better way
  • error in evaluation version when scrambled identifiers were written to HTML, could cause AV
Version 1.5.1 September 21, 2009
  • fixed error parsing anonymous methods
Version 1.5.0 September 15, 2009
  • support for Delphi 2010, which is now the default compiler target
  • fixed error parsing DFM files with UTF8 BOM
Version 1.4.15 July 14, 2009
  • now uses EurekaLog for exception handling
  • fixed bug in overload handling
Version 1.4.14 May 25, 2009
  • fixed error when parsing for-loops in some cases
  • improved overload handling
Version 1.4.13 April 13, 2009
  • code for main module was included in output even when "Include source code" was turned off in project options
  • fixed problems when selecting different file extension for output than the default "htm", did not create correct links
Version 1.4.12 April 5, 2009
  • fixed error with compiler switch for PABCMD.EXE
Version 1.4.11 March 30, 2009
  • improved resolution of calls to overloaded functions
  • fixed problem resolving relative paths on network drives
Version 1.4.10 March 22, 2009
  • improved handling av constant declarations
  • improved resolution of calls to overloaded functions
Version 1.4.9 March 17, 2009
  • fixed problem handling class helper declaration
Version 1.4.8 March 8, 2009
  • selection of "Both source and form files/Only source files" was not handled correctly in all situations
  • fixed problem in reopen menu
Version 1.4.7 March 3, 2009
  • link to web did not work in About-dialog
  • fixed problem in reopen menu
Version 1.4.6 February 21, 2009
  • fixed error related to anonymous methods
Version 1.4.5 February 18, 2009
  • fixed error related to anonymous methods
Version 1.4.4 February 9, 2009
  • fixed error related to anonymous methods
Version 1.4.3 January 28, 2009
  • fixed problem with handling of generics
Version 1.4.2 January 15, 2009
  • fixed problem with typecasted strings in const declarations
  • fixed problem with generics and method declarations
  • now understands "$IF NOT" conditional expressions
  • fixed error with hint directive after "end" keyword
Version 1.4.1 January 13, 2009
  • did not find library/browsing path for Delphi 2009
Version 1.4.0 January 8, 2009
  • added support for Delphi 2009
Version 1.3.1 September 27, 2008
  • fixed problem parsing record types with const declaration
Version 1.3.0 June 1, 2008
  • new tags possible to include in source code comments (<#IMG>, <#CODE> and <#URLA>/<#URLB>)
Version 1.2.6 April 24, 2008
  • control characters in comments (except TAB, CR and LF) are now converted to spaces
Version 1.2.5 April 15, 2008
  • fixed error parsing generics declaration
Version 1.2.4 March 14, 2008
  • option for including source was not always used
Version 1.2.3 February 19, 2008
  • fixed error for comments with XML tags
Version 1.2.2 November 23, 2007
  • fixed problems with extracting category and owner from todo item
  • error in TodoInc.xsl, text for global todo items were not written, selected "text" instead of "Text"
Version 1.2.1 November 5, 2007
  • directive VER190 was not set for compiler Delphi 2007 .NET
Version 1.2.0 November 2, 2007
  • added support for Delphi 2007 .NET

Version 1.1.2 October 13, 2007

  • improved rendering of hierarchy structures
  • changed output of constant declarations, earlier written as "sMyConst='My'", now written as "'My'"
  • changed output for all declarations, trailing "//" comments are removed
Version 1.1.1 July 11, 2007
  • fixed problem with record operators
Version 1.1.0 July 10, 2007
  • overload handling has been improved a lot, PAB is now much better at resolving calls to overloaded methods
  • new option "Show unused, exposed identifiers with special font" (default is Yes), on Options|Source tab page. In some cases, such as when generation documentation for library routines, you may not want to mark those identifiers as if they are unused
  • new option "Skip comment lines starting with these words" (default is empty), on Options|Source tab page. List words separated with semicolons that you want skipped. For example if "ENDIF" is such a word all comment lines "// ENDIF" are skipped. 
  • now also shows class hierarchy for reported classes that descend from classes with missing code
Version 1.0.3 June 20, 2007
  • fixed problem with file dialogs, "My Computer" button did not work
  • in source code listings, "package X" showed package name in strikeout font, like if it was not used
  • some directives were not recognized, so were not shown with keyword/directive font
Version 1.0.2 May 27, 2007
  • fixed problem with file dialogs in Windows Vista
Version 1.0.1 May 17, 2007
  • the first public version of Pascal Browser