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
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
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
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