Updates for May 2021

Author: thothonegan
Tags: c++ gitlab wolf_engine

Updates for May 2021

A lot happened this month!

Catalyst

  • Added a support tool which measures code quality via clang-tidy. It reports in the CodeClimate format, so its visible in Gitlab. Theirs a lot of tuning, and a ton of minimal things, but at least its tracking it now.

  • Started adding that to several libraries (Wolf, Canis, libWexpr) via CatalystCI.

Wolf

  • Start of WolfWeb - a webserver module. The idea is to easily be able to embed a webserver for debugging which can output the state of the game, or make it easy to adjust things on the fly. It can also act like a normal webserver, but you probably don't want to use it that way.

  • WolfTask::Task now can be used with coroutines/co_await. Its not used yet, since only VS really has support for it, but in the future we hope to be able to enable it (along with the rest of C++20).

  • Added support for async unit tests. This is for testing awaits, but instead of exiting directly, it returns a task which will wait for completion. It can also do standard sync tests, so you can mix and match.

  • Replaced the only remaining use of select() with poll(). While the main loop uses epoll() and other better forms, Process's wait till finished would use select for waiting on the program. With FDs getting bigger and bigger, best to just use poll there instead.

  • WolfStage2D now has the concept of padding and margins. While not supported in most layouts, this lets you easily add extra spacing around objects.

  • WolfUI menubar now is a lot better - sizes its buttons based on the text, has padding in between

Other

  • Upgraded Eigen, so it can compile on modern c++ where some parts of STL have been removed.

  • Upgraded zstd