This is an old revision of the document!
PHP's gd library is missing or unable to create PNG images
What is new in stable version 8.9.2
This release of the Dinamica EGO software introduces some improvements and addresses bugs:
(Compared to stable version 8.9.1):
Core Changes
• Symmetrical tasks are now allowed to modify objects captured by copy. • The set of utilities used to report nested execution progress within a functor was re-implemented to be less error prone when used. • Storing a shared_ptr for functors in WorkerSummary was stopped to prevent a crash during access. • The use of mimalloc was disabled to workaround a bug in its library that causes an application crash.
(Compared to stable version 8.9.0):
Core Changes
- Fixed bug where checkTaskCancellation() could crash the application if incorrectly called outside a task.
(Compared to stable version 8.8.0):
Core Changes
The core updates focused heavily on performance enhancements, parallelization fixes, extensive progress reporting infrastructure, and improved string handling for generated bindings.
Performance and Table Management
- Added a ReadOnlyTable to speed up Map Calculation using tables
- Fixed a problem where saved LookupTables couldn't be opened by the Load Table function
- Fixed an assertion error that occurred when removing many rows from a big table column due to a miscalculation of column free space
Progress Reporting and Task Execution
- Defined a new set of utilities to simplify the nesting of progress reports corresponding to functor execution
- Code related to progress reporting was moved to specific source files
- Existing code was updated to use these new features, and test cases were added
- Added progress reporting for map calculation (CalculateMap and CalculateCategoricalMap) and area calculation (CalcAreas)
- Integrated categorization calculation progress reporting into the Load Categorical Map functor
- Included categorization when reporting execution progress for the CalculateCategoricalMap
- Changed the definition of TaskProgressReporter so that it receives the initial progress during the setup phase
- This fixed a potential bug where initial progress might not be properly initialized if the number of tasks related to a functor changes during execution
- When calling intoSingleTaskProgressReporter(), the caller now has the responsibility for preparing the functor to receive progress notifications
- Improved documentation of the task progress reporters
Parallelization and Coordinate Iteration
- Fixed the initialization order of WorkerGroup variables
- Fixed an error related to “totalSize__” when using PARALLEL_FOR_EACH_COORDINATE() and its variations
- Made it possible to use iteration variables (“firstIndex_”, “lastIndexPastOne_”, and “indexRange_”) inside a FOR_EACH_IMAGE_COORDINATE()
String Handling and Bindings
- Changed the definition of “string_view.i” and the corresponding generated Java binding code to deal correctly with empty string_views
- Updated the version of “swing_view.i” to match the one provided by SWIG, copying the string_view only if it is not null-terminated
- Added comments to clarify that checking for zero-byte termination before calling NewStringUTF() could potentially cause an application page fault (and possibly crash)
Miscellaneous Core Fixes
- Added an option to Test::areFilesEqual() to control the outputting of differences between two files if their content differs
- Fixed regression by removing a declaration added from another branch
- Fixed a compilation error when using the fmt library version 12.0.0
GUI Changes
GUI modifications focused on reliable window placement, persistence handling, and improved table rendering and messaging.
Window Placement and Dialogs
- Implemented fixes for the window position calculation performed by placeWindowBelowBounds()
- Fixed behavior for environments with several screens
- Fixed behavior where placement hides the window under the OS task bar in some extreme cases
- Refactored the definition of placeWindowBelowComponent() so that its behaviors can be used separately in other places
- Added an optional new parameter when showing message boxes to prevent the dialog from overlapping a certain area on the screen
Table Display and Formatting
- Changed integer representation in tables to use decimal notation instead of scientific notation
- A numeric formatting change that was causing collateral issues was reverted, meaning the integer decimal formatting will be implemented specifically in TableUtils.CellRenderer
- Restored correct DinamicaCellEditor invocation (which was previously broken due to Object.class column type reporting)
- Added a utility method to check if a double value represents an exact integer
Messaging, Functors, and Error Prevention
- Changed behavior to display the functor name when it is not visible in the sketch or when an alias hides its real name
- Improved carrier operation messages and removed confusing 'remap' terminology
- Prevented error message boxes displayed after validating a functor editor window from overlapping the editor that is being highlighted as the source of the error
- Fixed execution options insets and changed the highlight color of options to be more readable
- Fixed regressions between versions
Persistence and Hierarchy
- Added handling for failed perspective restoration when the persistence key is missing or invalid
- The current major application version is retrieved for the persistence key
- Ensured the docking view is updated when a panel is attached to the hierarchy
Listing created using Google NotebookLM.