This isn’t precisely a set of release notes or a changelog file; we have a lot of detail in git logs, GitHub PRs, and GitHub release notes that cover that.
Instead, this focuses on changes that may break existing configurations or existing source code. In general, we’d like to avoid breaking things, but there are times where we find bugs in drivers that don’t have a clean fix, or (more likely) suggest that no one ever actually used the feature in question.
Entries tagged with [API] will impact developers and drivers that
aren’t checked into the LinuxCNC Ethercat tree, but shouldn’t be
visible to users.
This list should only include deliberate breakage, not typical bugs.
syncUnitPhase) instead of counting from
the cycle the bus first reached OP, so their position relative to
SYNC0 can differ from before. A master whose only Sync Unit is
slower than the master cycle now also exports
lcec.<m>.syncunit.<unit>.* pins and functs.lcec_slave_pd(slave) instead of slave->master->process_data,
which points at one Sync Unit’s domain at a time. It is still set
while the master’s functs run a driver, so existing drivers keep
working, but not for a Sync Unit serviced from its own HAL thread.<master> attribute syncToRefClock is deprecated and will be
removed in v1.48.0. Use the sign of refClockSyncCycles instead:
negative for M2R, positive for R2M, 0 for free running. Configs
using it still parse but log a warning. See
#471.lcec_param* now use param-specific types instead of
overloading pin-specific types. See
#375.LCEC*ALLOCATE* macros for improved error checking, instead of
calling hal_malloc directly. As part of this, failed memory
allocations are now treated as immediately fatal, rather than
triggering a cleanup attempt. See
#376.LCEC_PDO_INIT()
macro that was used by nearly every driver was removed. See
#302.src/devices/. Device name
to driver mapping completely revamped. LCEC_SLAVE_TYPE_T removed.
All drivers updated. See
#75,
#76,
#88,
#89,
#90,
#91,
#92,
#93.