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.
- Fix potential null pointer in
-
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.
- Add missing newlines in
-
Build and Configuration Fixes:
- Add
plugin.xml
and extension point schema toModelCommands
build properties. - Upgrade to Eclipse 2025-03 release.
- Add
-
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
andWrite
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.
- Cleaned up
-
Execution and State Management Enhancements:
- Reworked
CProcessInterfaceFB::changeExecutionState
for better state handling. - Fixed deregistration logic and added state change method in modular process interface.
- Reworked
-
String ID and Identifier Improvements:
- Made string ID generation more explicit and robust (PR #338).
- Added
override
specifier toDECLARE_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.
- Updated Embrick files to use
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