Skip to main content

Eclipse 4diac Weekly #27

Update on what development happened across the Eclipse 4diac project in the week from March 14 to March 21, 2025.

Enhancements and Fixes in 4diac IDE

  • Monitoring Enhancements:

    • Show last forced value during monitoring.
    • Add a clear force command for better control.
  • Code Quality and Bug Fixes:

    • Fix potential null pointer in LibraryManager and improve link resolution.
    • Remove workaround for inaccessible Xtext editor method.
    • Fix follow connection handler for blocks with only inout variables.
    • Consider only visible candidates for unresolved references in ST parser.
    • Fix access mode for member access expressions in ST utilities.
  • Improved Validations:

    • Add validation for unused function block (FB) variables.
    • Add validation for unused structured text (ST) variables.
    • Introduce configurable severities for unused variables.
    • Disable unused variable validations in ST quickfix tests.
    • Ignore warnings and informational messages in exporter tests.
  • Rich Text Editor Temporary Disablement:

    • Disabled due to stack overflow issues on Windows with Eclipse 2025-03.
    • Will be reinstated once the issue is resolved (Issue #631).
  • Exporter Improvements:

    • Add missing newlines in forte_ng exporter.
    • Updated exporter for new StringId handling.
    • Do not export event accessor call operator for multiple events.
    • Let Ant save task correctly save types and run auto-format.
    • Add missing includes to Ant task XML.
  • Build and Configuration Fixes:

    • Add plugin.xml and extension point schema to ModelCommands build properties.
    • Upgrade to Eclipse 2025-03 release.
  • New Features:

    • Introduce a new error marker for negated connections.

Enhancements and Fixes in 4diac FORTE

  • I/O Function Block (FB) Improvements:

    • Moved interface specifications of I/O FBs into a base class template.
    • Moved event functions to I/O FB base classes to reduce code duplication.
    • Added templates for input and output FBs to streamline code.
    • Reworked CProcessInterfaceFB to avoid using a mutex.
    • Extracted common I/O FB interface elements to CProcessInterfaceFB.
    • Moved I/O FBs to the modular I/O infrastructure for better optimization.
  • Code Clean-Up and Refactoring:

    • Cleaned up IE FB, removed unnecessary includes and generic call functions.
    • Removed generic Read and Write methods, introducing specific handlers.
    • Reworked IOObserver data type and direction handling to reduce memory usage.
    • Refactored GEN_E_MUX for improved clarity without functional changes.
    • Reverted incorrect code in Embrick FBs.
  • Execution and State Management Enhancements:

    • Reworked CProcessInterfaceFB::changeExecutionState for better state handling.
    • Fixed deregistration logic and added state change method in modular process interface.
  • String ID and Identifier Improvements:

    • Made string ID generation more explicit and robust (PR #338).
    • Added override specifier to DECLARE_HANDLER for clarity in event handling.
  • Generated Code Updates:

    • Updated Embrick files to use EInit.
    • Generated PLC01A1 from IDE, merging it with the configuration file.

These updates bring various performance enhancements, improved validation, and better modularization to the Eclipse 4diac ecosystem.

Many thanks to all contributors for their work and their feedback!

Cheers,
The Eclipse 4diac Team

Back to the top