====== Dinamica EGO — version 8.13.0 ====== Changes compared to version [[what_is_new_8_12_0|8.12.0]]: ===== 1. Elevation Graph refinements ===== Continuing the work introduced in [[what_is_new_8_12_0|8.12.0]], the Elevation Graph type and its functors received several follow-up improvements and fixes. * **[[get_elevation_graph_common_paths_summaries|Get Elevation Graph Common Paths Summaries]]** — the input port ''pseudoTopPairsForCommonPaths'' was changed from a Lookup Table to a Base Table, allowing more than one pair of ids that mention the same id to be passed. * **Performance** — algorithms that operate on elevation graphs were optimised to avoid an unnecessary data copy. * **Fixed: cancellation bug** — fixed a potential bug when canceling the execution of elevation graph functors after exceeding the maximum number of nodes that can be inspected. * Fixed a parsing error in some of the elevation graph test scripts. * Fixed a typo in the documentation of the elevation graph utility functions. ---- ===== 2. Assign Map Categories — automatic category generation ===== * [[assign_map_categories|Assign Map Categories]] can now automatically build the map categorization from the image values, while still preserving any existing stored categories. The input categories port is now optional. ---- ===== 3. Search improvements ===== * **Negated search patterns** — prefixing a search term with the ''!'' character now excludes matching results. This was already supported by the Functor Library, Explorer Panel, Issue Panel, and Submodel Manager since [[what_is_new_8_12_0|8.12.0]], and is now also supported by the search fields of the projection editor. ---- ===== 4. Calculate functor family and compiled expressions ===== * **Port rename** — the input port ''resultFormat'', shared by the [[calculate_map|Calculate Map]] / [[calculate_categorical_map|Calculate Categorical Map]] functor family, was renamed to ''mapFormat''. The previous name is kept as a legacy alias so existing scripts continue to load correctly. * **Fixed: assertion on string columns** — fixed a problem where compiled expressions would throw an assertion when a string column was used in a value expression. * **Fixed: compilation warning** — fixed a compiler warning about not all possible paths returning a value when running a compiled expression. * **Code Type** — the default parsing behaviour of the Code Type (used to store the R/Python code embedded in Calculate-family scripts) was changed so that it can now also be parsed from a raw string. ---- ===== 5. Python integration (CalculatePythonExpression) ===== * A separate Python interpreter is now used for each execution, and the internal ''pip install'' step now relies on native OS file locking instead of an internal mechanism, improving reliability under concurrent execution. * A test case covering concurrent Python dispatch was added. ---- ===== 6. Functor grouping and introspection ===== ==== Carrier functors ==== * Carrier functors were moved to a dedicated group in the functor library; legacy registrations were kept for backward compatibility. ==== Functor factory dump ==== The diagnostic information dumped by the functor factory was extended: * Input port information now also reports the additional and nullable groups a port belongs to. * Containers are now distinguished from regular functors, and their internal input and output ports are printed as well. * Output port information now reports whether a port is auto-bound. ---- ===== 7. Explorer panel ===== * Added distinct icons to the Explorer panel to differentiate functors that export input and output ports to submodels, and applied the same visual distinction to ports exported to the Wizard. ---- ===== 8. Script writing (EGO script format) ===== * When saving a script in EGO format, an output that is bound only to a container's internal input port is now written using a placeholder variable name instead of a real one, avoiding the generation of unnecessary named variables. ---- ===== 9. Bug fixes and minor improvements ===== * **SkipAllOnError / SkipOnError** — fixed a typo in the output port name (''executionCompletedSucessfully'' → ''executionCompletedSuccessfully''); the previous name is kept as a legacy alias. * **Lossless conversions** — fixed a bug where converting a ''LogTag'' or a ''CellType'' to a ''PositiveIntegerValue'' was incorrectly flagged as lossless, even though the conversion can fail when the value is 0. * **FilesystemHelper** — fixed an initialization bug that caused a circular dependency; assertions were added so that an invalid initialization state is caught early instead of failing silently. * Fixed the documentation of the command-line tools related to the log subsystems, to include the updated values. * **Options dialog** — fixed a small error in the tooltip for the option that controls the abbreviated syntax used by the Calculate family of functors. * Fixed a bug that could trigger an assertion under a valid use case when resolving a functor's container. * **Save dialog** — when changing the file type in a save dialog, an extension is no longer added to an empty file name. * Improved the input port descriptions of [[remove_table_column|Remove Table Column]] and [[extract_lookup_table_attributes|Extract Lookup Table Attributes]]. * Code cleanup: avoided a brace-init overload ambiguity in the functor factory by accepting ''std::initializer_list''. ----