You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Horus relies on the availability of erts to initialize the list of modules to skip when it needs to decide if a call should be followed to extract a function or if the call should be preserved as is.
It already depends on kernel and stdlib for instance. I assumed that erts was implicit as I don't see how Erlang can work without it. It looks like if erts is not included explicitly in an Erlang release file or in the applications it bundles, it is excluded from the release (the erts Erlang application, not the actual runtime). This breaks Horus because it won't know about e.g. the erlang module and will try and fail to extract functions from that module.
See rabbitmq/khepri#212 and rabbitmq/khepri#222 for users who encountered this problem. A function extraction will fail with {horus_ex, module_not_found, #{module => erlang}} if erts is missing from a release.
How
It looks like a bug in the way releases are created because, to me, it makes no sense to not always include erts (like kernel and stdlib).
As a workaround, we should include erts in the dependencies of Horus.
The text was updated successfully, but these errors were encountered:
[Why]
Horus relies on the availability of `erts` to initialize the list of
modules to skip when it needs to decide if a call should be followed to
extract a function or if the call should be preserved as is.
It already depends on `kernel` and `stdlib` for instance. I assumed that
`erts` was implicit as I don't see how Erlang can work without it. It
looks like if `erts` is not included explicitly in an Erlang release
file or in the applications it bundles, it is excluded from the release
(the `erts` Erlang application, not the actual runtime). This breaks
Horus because it won't know about e.g. the `erlang` module and will try
and fail to extract functions from that module.
Fixes#14.
Why
Horus relies on the availability of
erts
to initialize the list of modules to skip when it needs to decide if a call should be followed to extract a function or if the call should be preserved as is.It already depends on
kernel
andstdlib
for instance. I assumed thaterts
was implicit as I don't see how Erlang can work without it. It looks like iferts
is not included explicitly in an Erlang release file or in the applications it bundles, it is excluded from the release (theerts
Erlang application, not the actual runtime). This breaks Horus because it won't know about e.g. theerlang
module and will try and fail to extract functions from that module.See rabbitmq/khepri#212 and rabbitmq/khepri#222 for users who encountered this problem. A function extraction will fail with
{horus_ex, module_not_found, #{module => erlang}}
iferts
is missing from a release.How
It looks like a bug in the way releases are created because, to me, it makes no sense to not always include
erts
(likekernel
andstdlib
).As a workaround, we should include
erts
in the dependencies of Horus.The text was updated successfully, but these errors were encountered: