====== What is New in Dinamica EGO 8.4.0 ====== (Changes compared to [[what_is_new_8_3_0|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)//