What is new in stable version 8.10.0

This update for the software introduces improved system reliability, enhancements to the user interface, and better tools for data management (compared to stable version 8.9.2):

New Features and Tools

A new panel and resource monitor have been added to the interface to track the usage and lifetime of resources such as Maps, Tables, and LookupTables during task execution.

Analogy for Understanding Resource Tracking: Think of the new Resource Monitor like a dashboard in a car. Instead of just knowing the car is running, you can now see exactly how much fuel (Maps), oil (Tables), and electricity (LookupTables) each part of the engine is using at any given moment, helping you understand if everything is running efficiently.

A new functor called “Calculate Lookup Table Keys And Values” allows you to create lookup tables by defining specific rules to calculate keys and their corresponding values.

The system can now identify if a repeating task (loop) is capable of running multiple steps at the same time to save time.

An icon and improved descriptions have been added to the Explorer panel to show you at a glance if a task supports this simultaneous execution.

A new setting allows you to rebuild category data from images while keeping your stored categories and removing unnecessary ones.

Interface and Usability Enhancements

The software now automatically updates the file extension (such as .png) in the name box when you select a different file type while saving or opening files.

You can now choose which columns are visible in the resource monitor, and the system will remember your settings for refreshing the data table.

Helpful pop-up descriptions have been added to the columns in the Explorer panel to better explain what the data represents.

You can now narrow your searches to look specifically for tools (functors) within the Explorer, Issue, and Library panels.

Navigation through tables is now smoother with fixed support for keyboard shortcuts like Shift+Tab.

Reliability and Bug Fixes

Errors now provide more detailed feedback by identifying exactly which part of a task caused the problem.

The interface has been updated to display these detailed error messages more clearly.

A bug that caused missing category colors has been resolved by correcting the order in which the software processes data.

The setting “useCellCenterOnly” has been fixed to behave as intended while remaining compatible with older projects.

Several tool names have been updated for better consistency, such as renaming “Calculate Lookup Table” to “Calculate Lookup Table Values”.

Improvements have been made to prevent crashes during large tests and to ensure the software handles empty inputs more accurately.

Here is the full list of changes:

Core System Commits

Updated the software version to 8.10.0.

Refactored `DetailedException` and `FunctorValidationException` to use structured fields for information storage rather than a single message string.

Added an additional field to `FunctorValidationExceptions` to propagate details, allowing validation errors to be identified by specific ports.

Fixed macro names for message logging and exception throwing to follow all-caps naming conventions.

Resolved a bug in the input port parser that incorrectly handled nullable inputs when `SRF_TREAT_UNDEFINED_PEERS_AS_UNBOUND` was enabled.

Updated the system to allow the verification of multiple unused hooks simultaneously.

Fixed an issue where proxies were required to have the same name as the functor they represented.

Introduced the `CalculateLookupTableKeysAndValues` functor, which uses expressions to determine keys and values.

Renamed `CalculateLookupTable` to `CalculateLookupTableValues` and refactored it to share code with the new lookup tool.

Added the `recreateCategories` flag to rebuild category data from images while preserving stored categories.

Fixed a bug where category colors were missing due to the categorization step running after the combining step.

Reduced the size of distributed tests to prevent system crashes.

Implemented resource tracking to monitor the “lifetime” of Maps, Tables, and LookupTables during task execution.

Resolved a build warning and fixed an issue where lookup functors failed to report errors if a base format was missing.

Added an `operator+=` for atomic types that returns the previous value of the atomic.

Fixed a regression that prevented loops from displaying information regarding their ability to run steps simultaneously.

Exported a Java function used to determine if a functor corresponds to a loop supporting parallel execution.

Corrected test cases related to missing base formats in lookup tables.

Refined category recreation so that spurious categories are no longer preserved, leaving only classes present in the map.

Fixed the inverted behavior of the `useCellCenterOnly` flag and implemented a proxy to ensure backward compatibility for older projects.

GUI and GUI Utility Commits

Updated the GUI code to handle the new definitions for `DetailedException` and `FunctorValidationException`.

Added a Resource Monitor panel to the interface for tracking the usage of Maps, Tables, and LookupTables.

Configured the execution monitor to remember the state of the snapshot checkbox for refreshing resource tables.

Updated the resource profiler to use `JYTable`, which allows users to select visible columns.

Added tooltips for individual columns and an icon to indicate parallel execution support in the Functor Explorer panel.

Fixed a bug in the table viewer that allowed cells to appear editable and resolved a crash that occurred when using Shift+Tab.

Removed redundant constraints and added an option to filter searches specifically for functors in the Explorer, Issue, and Library panels.

Automated file extension updates in the file chooser so the extension changes when a user selects a different file filter.

Added specific actions for Shift+Tab navigation within tables to improve keyboard controls.