What is New in Dinamica EGO 8.4.0

(Changes compared to Dinamica EGO 8.3.0.)

Application Core

Updated the version to 8.4.0.

Updated the copyright year.

Fixed various compilation issues, including warnings and errors when using gcc. This involved fixing unnecessary copies and addressing C4100 and C4456 warnings.

Removed a function reporting if the application is 64 bits as the application is now always 64 bits.

Exported a function used to rank strings representing application version numbers.

Updated swig to version 4.3.0.

Changed how namespace functions are exported to Java to emulate classes with static members for `ProxyFunctorUtils`, `CellTypeInfo`, `LogTagInfo`, `ScriptUtils`, `SubmodelUtils`, and `NameUtils`.

Moved some Java exported functions from `SubmodelUtils` and `ScriptUtils` namespaces to the `Script` class in Java.

Refactored code by removing redundant definitions of functions exported to Java and for converters between filenames and strings to avoid duplication.

Added functions to the `PropertyUtils` and `StringUtils` namespaces and exported them to Java to emulate classes with static members.

Exported functions related to projection as static members of the `Projection` class in Java.

Exported functions related to the comparison of versions as strings as static members of the `Version` class in Java.

Changed the Calc Hilltop port name and description for clarity.

Fixed a problem where compiled expressions could cause memory errors.

Added functionality to verify the coordinator availability (exposed to Java).

Fixed error messages issued when passing invalid data to a `RunRemotely` and on tests.

Fixed bugs related to transferring a Folder to a `RunRemotely`, the conversion of some filenames to strings, the workdir property for bundle scripts, and tables with a single column being read with one less row.

Fixed Patcher and Expander to use the random number generator from the current worker.

Added weighted-sum and root-mean-square resampling methods to `TransformMapFunctor`.

Improved documentation and fixed comments.

Fixed a memory leak on Distributed.

Fixed Linux test problems and issues with GDAL projections on the Linux setup script.

Added C++20 support and merged the 'cpp20' branch.

Updated `dinamica_dependencies_windows.zip`.

Allowed tables to have any name format on their column titles.

Fixed a problem where Python could throw an assertion when strings couldn't be converted to UTF-8.

Fixed a problem where console arguments printing information would require an additional argument.

Assigned a description name to identify the threads corresponding to each worker.

Added additional information about the current step as progress for cost calculation.

Removed use of `stringstream` in favor of the `fmt` library when creating a category name.

Switched to the use of `std::unordered_set` instead of `std::set` when dealing with task graphs and `std::unordered_map` instead of `std::map` where possible.

Allowed tasks added to task groups to be dispatched immediately.

Defined specialization for `DFF::toString` to handle `std::unordered_map`.

Massively optimized the `CalcPatchLabelMap` execution by rewriting the code and adding a new flag to control the generation of sequential labels.

Fixed the generation of Java binding related to `TableDescriptionColumn`.

Changed a test case for `CalcPatchLabelMap` to ensure consistent results across different numbers of cores.

Implemented the execution of Python scripts from “Calculate Python Expression” as independent sub-processes. This also included allowing dinamica python to detect termination requests, removing Python map tests and dependencies/integration, fixing thread naming and system process waiting times on Linux, and making Linux system processes use default environment variables.

Fixed missing namespace in `format_to`.

Added assertions on zeromq context termination.

Ensured `RunRemotely` clears both the socket and context after running.

Added scripts to configure the build, compile source files, and install the libraries and utilities all at once.

Application GUI

Merged the remote-tracking branch 'origin/new\_tables'.

Implemented a workaround for a bug in the code formatter by removing the use of underscore in numbers.

Removed the `isAutoUpdateSupported()` method as it's no longer relevant because auto-update is now supported for all operating systems.

Included general formatting improvements.

Removed the function reporting if the application is 64 bits, as the application is now always 64 bits.

Made improvements to the update manager:

Changed the update manager to better select between stable and development releases.

Clarified messages.

Fixed an issue where the pending-update icon would lose its tooltip under certain circumstances.

Fixed minor problems related to the update notification showing on the system tray.

Changed how several namespace functions are exported to Java to emulate a class with static members. This includes:

`ProxyFunctorUtils`

`CellTypeInfo`

`LogTagInfo`

`ScriptUtils`

`SubmodelUtils`

`NameUtils`

`StringUtils`

Moved some Java exported functions from the `SubmodelUtils` and `ScriptUtils` namespaces to the `Script` class in Java.

Exported functions related to projection as static members of the `Projection` class in Java.

Treated submodel pendencies as ignored when all derived pendencies causing them are ignored.

Exported functions related to the comparison of versions as strings as static members of the `Version` class in Java.

Fixed a rendering artifact in the Explorer panel.

Added functionality to verify the coordinator availability.

Changed the names of constants related to the docking layout for more clarity.

Reordered method definitions to comply with guidelines (private methods last).

Excluded some functors from the calculation of the bottleneck time, as their times mostly represent aggregate times.

Fixed a bug where selection was not cleared after submodel installation.

Refactored selection handling in `CheckBoxSelectionModel` using a `TreeSelectionListener` to ensure `clearSelection` properly updates the selected submodels list.

Added the same validation logic from `attemptConnection` to `canReadjustConnections` to prevent suggesting invalid connection readjustments.

Added a filter to display only selected submodels.

Added a temporary blinking border around the editor whose validation reported an error.

Refactored a method to clarify the behavior when a functor is highlighted as responsible for an error.

Fixed some component placement and removed some unnecessary uses of fill and weightx.

Adapted the definition of `makeEditorVisible()` to be compatible with a new version of `getTabbedPaneTabContaining()`.

Added a temporary blinking border around relevant options in the `OptionsDialog` when editing settings presented by a shortcut in the status bar and by some other editors (metadata editor, script backup, etc.).

Fixed imports to match the convention for dff types and sorted them.

Removed an unused property.

Fixed a warning about inconsistent property naming.

Updated code to use the new name to generate random colors from task group ids.

Added a tooltip to the `showSelectedItemsButton`.

Fixed a bug where closing the dialog still confirmed the action of expanding the submodel definition.

Fixed the presentation of the information for the STB\_IMAGE\_WRITE library in the About window.

Implemented an action to expand all submodels in the selected script.

Always displayed information about a port in the functor editor window even if the port cannot be edited.

Added an action to import the currently selected submodel.

Changed the import submodels action name to be more consistent with its behavior.

Fixed inconsistencies in the definition of the accelerator keys for the items of the Submodel menu.

Fixed the order of the “Sign In” and “Sign Out” items in the Submodel menu.

(Summary generated using Google Notebook)