Echo changelog July 2024
Despite my inconsistencies posting, Echo does get regular updates and is in active use.
A long overdue summary is here. This covers work merged into default over the last couple of months.
Switched to C++17 by default
As usual the default base version bump lags to ensure support is available in toolchains. There are C++20 projects using Echo so you can further bump this up for your projects.
- CMakeLists sets this if the standard isn't specified
- Linux tested
- Dependencies for other platforms vary and will be updated over time.
Networking
- Added support for listening management
- A listener object is returned on call to NetworkManager::Listen() which can be used to cancel the listen request. Legacy interface is still available.
- Fixed a race causing a deadlock on connection cleanup of BoostASIONetworkSystem. This was a result of an earlier bugfix and never spotted due to the specific use case not being used anywhere until recently
- Removed logging that suggested an error during normal operation of disconnect in SocketNetworkSystem
- Sped up network tests
- Added raw data sending and receiving for Connections.
- This can be used by calling Connection::SetRawDataHandler()
- Switching to this mode shifts full responsibility of data management to the caller immediately. Packet callbacks aren't used in this mode.
- Merged typescript networking support
Configuration
- Added option for configuration to set rather than add when parsing.
This can be set with SetParsingSetsNotAdd() or overridden with configuration.overwrite=true|false[,persist]
This has probably been the one main limitation of Configuration of which multiple work arounds have been used in the past.
GUI
- Text supports a template string which can include a $0 which is set to the supplied text value. For example:
"textTemplate": "Number of trees: $0"
and when
// Templated auto conversion guiText->SetText(1234);
results in:
Number of trees: 1234
edepbuild
- Added Powershell support
- Includes downloading a local cmake automatically if cmake isn't available on the command line
- edepbuild is available on GitHub
Packaging
- Added cpack options to allow building a deb with:
cd build cpack ..
Misc
- Fixed various compiler warnings
- Templates were updated to capnp from protobuf
- Resource conversion scripts updated to detect non-e-prefix files.
- Updated devkitpro setup script
- Projects
- Subscribers
- None