modules using the dot notation not loaded

Tim Watson watson.timothy at gmail.com
Mon Jun 6 08:15:30 EDT 2011


On 6 June 2011 12:38, Fredrik Linder <fredrikelinder at gmail.com> wrote:
> Hi again
> I found that the module I am trying to load are specified to be primLoad:ed
> in rel/mynode/releases/1/mynode.script, and that:
> mynode> application:get_application(myapp.myfile).
> {ok, myapp}
> But still it cannot load myapp.myfile.
> I cannot find where the myapp files are put into the myapp-1.ez archive that
> are used by mynode. Could someone please give me a pointer?
> Very best regards
> /Fredrik

Hi Fredrik,

The package (dot) notation is not fully supported by OTP, so I suspect
this is one of the many edge cases that simply doesn't work. In
particular, I've found that the reltool doesn't properly support
packages, so beam files that reside in subdirectories beneath ebin are
not copied to the release when you run `rebar generate`. This isn't a
rebar bug, but rather a case of reltool not supporting packages
properly.

You can work around this by copying the beam files into place before
packaging up your release. I've had to do similar things (for
different reasons) here:
https://github.com/hyperthunk/nodewatch/blob/master/build/src/release_plugin.erl#L60
using a rebar plugin.



More information about the rebar mailing list