To support OTP 21 we manually start error_logger if it is not present
(and lager is configured to install an error_logger handler) and we add
error_logger as a logger handler.
Longer term we should switch to installing our own logger handler, but
that is a larger task as we'd have to redo all the event parsing, if
that is even possible.
Don't use dirty timeout for gen_statem
That was introduced in OTP 19.2, and causes
failures in tests on OTP 19 and 19.1
Fix statem for all 19.x releases
Add/update file copyright headers where deterministically appropriate.
Note:
Many updates to rebar.config files have been scripted to ensure
consistency and likely have re-ordered configuration settings and options.
While the file may look significantly different, the content other than
dependency updates (and, in some cases, more stringent compilation options)
should be the same from rebar's perspective.
Note that compiling on OTP 17.0, or later, will produce beam files
(specifically lager_trunc_io) that are incompatible with R16B03-1, or
earlier, due to erlang:is_map/1 using a new beam opcode (156). However
if compiled on R16B03-1, or earlier, will produce beams files that are
compatible with 17.0, and later, and maps will be formatted where
supported by the active OTP release.
Adds transparent event stream processing and statistics.
A new 3-tuple trace is introduced as `{Key, Op, Value}`, but
for backwards compatibility `{Key, Val}` implies `=` for `Op`
and `{Key, '*'}` remains as is in the case of wildcards.
A simplified query tree module is generated which reduces
redundant selection conditions to minimize filtering overhead.